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)
|
рони,
Ооо всё работает! Остался последний шажок - если в dataz "price" больше "цены" - вывести клиенту инфу об объекте. Решается перебором объектов в ячейках массива? Помогите, пожалуйста. |
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)
|
рони,
20 минут сижу думаю, не могу найти. Где то что то не то, скрипт вывел 8 объектов (из 60 совпадений по cName) и у всех "price" меньше "цены" |
xcube,
if (+v.price > +v.цена) arr.push(v);попробуйте так |
рони,
Работает! Всё отлично. Большое спасибо за помощь! :victory: :dance: |
Быть может есть способ ускорить и упростить? Один цикл 500+ объектов секунд 60 обрабатывает :-E
А после 2-3 циклов и вовсе перестает реагировать.. |
Цитата:
|
Alexandroppolus,
Браузер зависает на секунд 10 именно в момент перебора. |
| Часовой пояс GMT +3, время: 08:20. |