Помогите с массивами в js
Всем привет!
Имеется 2 массива с объектами типа: datas = [{name, price}] , [{name, price}]; datab = [{name, price2}] , [{name, price2}]; Извиняюсь за возможный кривой синтаксис - я новичок. Нужно сравнить их, дедуплировать и соединить, что бы на выходе получилось: dataz = [{name, price, price2}] , [{name, price, price2}] name - совпадают, price - разные, но нужно их объединить. Надеюсь попадаю под нужную категорию форума, но, за хороший ответ готов вознаградить. |
xcube,
уточните структуру массивов! |
Наверное, я начудил, в консоли пишет так:
Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, ещё 39… ] Если в лог вывести obj, то: Object { name: "Кристал", price: "3" } |
xcube,
const datas = [{name : 1, price : 100} , {name : 2, price : 45}], datab = [{name : 1, price2 : 5} , {name : 2, price2 : 33}], dataz = Array.from(datas, (v, i) => ({...v, ...datab[i]})); console.log(dataz) |
рони,
Отдельно скрипт работает, а с моими массивами, почему то, нет( Уточню: данный скрипт для imacros firefox. const data = []; var buy = window.document.querySelectorAll(".table-sell td[data-label='Вещь']"); for (var i = 0; i < buy.length; i++) { var cName = buy[i].innerHTML.replace(/\s+/g, ''); var cPrice = buy[i].closest('tr').querySelector(".price").innerHTML.r eplace(/\s+/g, ''); var obj = { name: cName, price: cPrice } data.push(obj); } window.console.log(data); Так я заполнил массив data объектами. Может ошибся где? |
Цитата:
сделайте массивы для примера. |
рони,
Второй массив точно так же заполняется, как и первый. На сайте 2 одинаковые таблицы, парсятся по очереди. С вашими примерами массива всё работает. Быть может я могу как то посмотреть структуру своих массивов? |
Цитата:
Цитата:
вы же смотрите. |
xcube,
может нет price2 во втором массиве. что мешает написать, что на входе двух массивов и что хотите получить? |
http://images.vfl.ru/ii/1568573337/0...c/27874800.png
Первые 2 массива - мои. Третий создался вашим решением. |
Часовой пояс GMT +3, время: 11:53. |