15.09.2019, 23:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
xcube,
может так чуть быстрее будет.
const datas = [{name : 1, price : 100} , {name : 2, price : 45}, {name : 3, price : 400}],
datab = [{name : 1, price : 5} , {name : 2, price : 33}],
obj = datas.reduce((obj, {name, price}) => (obj[name] = price, obj), {}),
dataz = datab.map(v => {
const {name} = v ;
v.цена = obj[name] ;
return v
});
console.log(dataz)
|
|
15.09.2019, 23:48
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
рони,
Ооо всё работает!
Остался последний шажок - если в dataz "price" больше "цены" - вывести клиенту инфу об объекте.
Решается перебором объектов в ячейках массива?
Помогите, пожалуйста.
Последний раз редактировалось xcube, 15.09.2019 в 23:51.
|
|
16.09.2019, 00:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
xcube,
const datas = [{name : 1, price : 100} , {name : 2, price : 45}, {name : 3, price : 400}],
datab = [{name : 1, price : 5} , {name : 2, price : 330}],
obj = datas.reduce((obj, {name, price}) => (obj[name] = price, obj), {}),
arr = [],
dataz = datab.map(v => {
const {name} = v ;
v.цена = obj[name];
if (v.price > v.цена) arr.push(v);
return v
});
console.log(arr, dataz)
|
|
16.09.2019, 00:19
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
рони,
20 минут сижу думаю, не могу найти.
Где то что то не то, скрипт вывел 8 объектов (из 60 совпадений по cName) и у всех "price" меньше "цены"
|
|
16.09.2019, 00:40
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,105
|
|
xcube,
if (+v.price > +v.цена) arr.push(v);
попробуйте так
|
|
16.09.2019, 00:59
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
рони,
Работает! Всё отлично. Большое спасибо за помощь!
|
|
16.09.2019, 02:13
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
Быть может есть способ ускорить и упростить? Один цикл 500+ объектов секунд 60 обрабатывает
А после 2-3 циклов и вовсе перестает реагировать..
Последний раз редактировалось xcube, 16.09.2019 в 02:16.
|
|
16.09.2019, 10:46
|
|
Профессор
|
|
Регистрация: 25.10.2016
Сообщений: 1,012
|
|
Сообщение от xcube
|
Один цикл 500+ объектов секунд 60 обрабатывает
|
мы, наверно, что-то не знаем? 500 объектов даже с предыдущим вариантом рони (где вложенный цикл) должны за полсекунды пролетать, не более
|
|
16.09.2019, 22:58
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
Alexandroppolus,
Браузер зависает на секунд 10 именно в момент перебора.
|
|
|
|