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, время: 22:37. |