Я анализирую фид заказов, чтобы выявить повторяющиеся купленные товары и сгруппировать их по количеству для загрузки. Однако, когда я пытаюсь сопоставить полученный массив, он показывает [object Object], что заставляет меня думать, что что-то преобразует возвращаемый результат в объект, а не в массив.
Функция выглядит следующим образом:
function compressedOrder (original) {
var compressed = [];
// make a copy of the input array
// first loop goes over every element
for (var i = 0; i < original.length; i++) {
var myCount = 1;
var a = new Object();
// loop over every element in the copy and see if it's the same
for (var w = i+1; w < original.length; w++) {
if (original[w] && original[i]) {
if (original[i].sku == original[w].sku) {
// increase amount of times duplicate is found
myCount++;
delete original[w];
}
}
}
if (original[i]) {
a.sku = original[i].sku;
a.price = original[i].price;
a.qtty = myCount;
compressed.push(a);
}
}
return compressed;
}
И код JS, вызывающий эту функцию:
contents: compressedOrder(item.lineItems).map(indiv => ({
"id": indiv.sku,
"price": indiv.price,
"quantity": indiv.qtty
}))
Результат:
содержимое: [[Object], [Object], [Object], [Object]]
Когда я JSON .stringify () выводит результат, я вижу, что он извлекает правильную информацию из функции, но я не могу понять, как заставить вызывающую функцию вытаскивать это как массив, который затем может быть отображен, а не как объект.
Правильный вывод, который находится внутри загружаемого фида гораздо большего размера, должен выглядеть следующим образом: содержимое: [{"id": "sku1", "price": 17.50, "amount": 2}, {"id": "sku2", "price": 27.30, "amount": 3}]
{Наверное, это что-то очень простое и очевидное, но сегодня я ломал себе голову над этой (гораздо большей) программой до 4 утра, так что моя голова, наверное, не в том месте}