У меня есть файл данных, и я должен преобразовать его в другой формат, используя метод redu (), я написал код, но он не добавляет все элементы ...
ФАЙЛ ДАННЫХ: data.txt
Joey Pizza 2
Joey Sandwich 1
Joey Burger 2
Chandler Pizza 1
Chandler Sandwich 0
Chandler Burger 1
Ожидаемый результат
{
"Joey": [
{
"Ordername": "Pizza",
"Quantity": "2"
},
{
"Ordername": "Sandwich",
"Quantity": "1"
},
{
"Ordername": "Burger",
"Quantity": "2"
}
],
"Chandler": [
{
"Ordername": "Pizza",
"Quantity": "1"
},
{
"Ordername": "Sandwich",
"Quantity": "0"
},
{
"Ordername": "Burger",
"Quantity": "1"
}
]
}
Код, который я написал:
код. js
const fs = require('fs');
var output = fs
.readFileSync('data.txt', 'utf8')
.trim()
.split('\n')
.map((line) => line.split(' '))
.reduce((acc, item) => {
acc[item[0]] = [];
acc[item[0]].push({ Ordername: item[1], Quantity: item[2] });
return acc;
}, {});
console.log(JSON.stringify(output, null, 2));
При запуске выше кода его выдача этот результат :
{
"Joey": [
{
"Ordername": "Burger",
"Quantity": "2\r"
}
],
"Chandler": [
{
"Ordername": "Burger",
"Quantity": "1"
}
]
}
Почему это только добавление третьего элемента в массив, а не все три элемента?