![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 20:10
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
Помогите с массивами в js
Всем привет!
Имеется 2 массива с объектами типа:
datas = [{name, price}] , [{name, price}];
datab = [{name, price2}] , [{name, price2}];
Извиняюсь за возможный кривой синтаксис - я новичок.
Нужно сравнить их, дедуплировать и соединить, что бы на выходе получилось:
dataz = [{name, price, price2}] , [{name, price, price2}]
name - совпадают, price - разные, но нужно их объединить.
Надеюсь попадаю под нужную категорию форума, но, за хороший ответ готов вознаградить.
Последний раз редактировалось xcube, 15.09.2019 в 20:17.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 20:29
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
xcube,
уточните структуру массивов!
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 20:39
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
Наверное, я начудил, в консоли пишет так:
Array [ Object, Object, Object, Object, Object, Object, Object, Object, Object, Object, ещё 39… ]
Если в лог вывести obj, то:
Object { name: "Кристал", price: "3" }
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 20:41
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
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)
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 21:23
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
рони,
Отдельно скрипт работает, а с моими массивами, почему то, нет(
Уточню: данный скрипт для 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 объектами. Может ошибся где?
Последний раз редактировалось xcube, 15.09.2019 в 21:33.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 21:35
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Сообщение от xcube
|
а с моими массивами, почему то, нет(
|
скорее всего у вас иная структура второго массива, чем у первого.
сделайте массивы для примера.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 21:42
|
Интересующийся
|
|
Регистрация: 15.09.2019
Сообщений: 15
|
|
рони,
Второй массив точно так же заполняется, как и первый. На сайте 2 одинаковые таблицы, парсятся по очереди.
С вашими примерами массива всё работает.
Быть может я могу как то посмотреть структуру своих массивов?
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 21:45
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
Сообщение от xcube
|
Быть может я могу как то посмотреть структуру своих массивов?
|
Сообщение от xcube
|
window.console.log(data);
|
вы же смотрите.
|
|
![Старый](/forum/images/ca_serenity/statusicon/post_old.gif)
15.09.2019, 21:47
|
![Аватар для рони](https://javascript.ru/forum/image.php?u=7416&dateline=1372796129) |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,134
|
|
xcube,
может нет price2 во втором массиве.
что мешает написать, что на входе двух массивов и что хотите получить?
|
|
|
|