Я пытаюсь объединить несколько массивов в Javascript с помощью некоторой функции «COALESCE», как в SQL.
Ниже приведены мои массивы:
var items = [
{itemid: 'A'},
{itemid: 'B'},
{itemid: 'C'},
{itemid: 'D'},
{itemid: 'E'}
];
var specials = [
{itemid: 'A', price: '5.00'},
{itemid: 'C', price: '5.00'},
{itemid: 'E', price: '5.00'}
];
var mainprices = [
{itemid: 'A', price: '10.00'},
{itemid: 'B', price: '10.00'},
{itemid: 'C', price: '10.00'},
{itemid: 'D', price: '10.00'},
{itemid: 'E', price: '10.00'}
];
То, что я хочу, это: Мойпервый столбец будет itemid
мой второй столбец будет цены
Я хочу, чтобы столбец цен извлекал цены из моих специальных скидок 1014 *'сначала массив, а затем для строк, которые не имеют значений, возвращать цены из моего массива' mainprices '.
Вот что я пробовал до сих пор:
var results = [];
for (var i=0; i<items.length; i++) {
var found = false;
for (var j=0; j<specials.length; j++) {
if (items[i].itemid === specials[j].itemid) {
results.push({
item_id: items[i].itemid,
price_value: specials[j].price
});
found = true;
break;
}
}
if (found === false) {
results.push({
item_id: items[i].itemid,
price_value: null
});
}
}
console.log(results);
Это выводит:
[{item_id: "A", price_value: "5.00"}, {item_id: "B", price_value: null}, {item_id: "C", price_value: "5.00"}, {item_id: "D", price_value: null}, {item_id: "E", price_value: "5.00"}]
То, что я хотел бы сделать сейчас, это заменить нулевые значения на значения mainprices.price
Я был бы очень признателенесли кто-то может мне помочь !!
Ура