#javascript #html
#javascript #HTML
Вопрос:
Я получаю результаты от моего MySQL в виде такого массива:
[ RowDataPacket {
Shipper_Name: 'SONA CEREAL PRODUCTS PRIVATE LIMITED',
Job_ID: 6,
ShipperInvoiceNo: '12',
Packing: '4X10Kgs',
TotalBags: 4000,
receivedbags: null,
Diff: null },
RowDataPacket {
Shipper_Name: 'AGROW ALLIED VENTURES P LTD',
Job_ID: 7,
ShipperInvoiceNo: '0129-20',
Packing: '1X30Kgs',
TotalBags: 4800,
receivedbags: 3670,
Diff: -1130 },
RowDataPacket {
Shipper_Name: 'ATLANTIC CROP SCIENCE P LTD',
Job_ID: 8,
ShipperInvoiceNo: '0334/20-21',
Packing: '8X5Kgs',
TotalBags: 8758,
receivedbags: 8758,
Diff: 0 },
RowDataPacket {
Shipper_Name: 'ATLANTIC CROP SCIENCE P LTD',
Job_ID: 8,
ShipperInvoiceNo: '0334/20-21',
Packing: '1X40Kgs',
TotalBags: 1800,
receivedbags: 1800,
Diff: 0 },
RowDataPacket {
Shipper_Name: 'ATLANTIC CROP SCIENCE P LTD',
Job_ID: 8,
ShipperInvoiceNo: '0334/20-21',
Packing: '4X10Kgs',
TotalBags: 4130,
receivedbags: 530,
Diff: -3600 } ]
Теперь я хочу преобразовать эти данные или массив JSON в приведенный ниже массив, поскольку я хочу заполнить HTML-таблицу этими данными.
[{"Shipper_Name":"SONA CEREAL PRODUCTS PRIVATE LIMITED"},{"Job_ID":"6","ShipperInvoiceNo": "12","Packing": "4X10Kgs","TotalBags": "4000","receivedbags": "null","Diff": "null"},{"Shipper_Name": "AGROW ALLIED VENTURES P LTD"},{"Job_ID": "7","ShipperInvoiceNo": "0129-20","Packing": "1X30Kgs","TotalBags": "4800","receivedbags": "3670","Diff": "-1130" },{"Shipper_Name": "ATLANTIC CROP SCIENCE P LTD"},{"Job_ID": "8","ShipperInvoiceNo": "0334/20-21","Packing": "8X5Kgs","TotalBags": "8758","receivedbags": "8758","Diff": "0"},{"Job_ID": "8","ShipperInvoiceNo": "0334/20-21","Packing": "1X40Kgs","TotalBags": "1800","receivedbags": "1800","Diff": "0"},{"Job_ID": "8","ShipperInvoiceNo": "0334/20-21","Packing": "4X10Kgs","TotalBags": "4130","receivedbags": "530", "Diff": "-3600" }]
Комментарии:
1. Не могли бы вы перепроверить и подтвердить, соответствует ли формат результирующего массива тому, который вы опубликовали? Я бы ожидал чего-то подобного
[{ RowDataPacket: { ... } }, { RowDataPacket: { ... } }, ...]
, а не[RowDataPacket { ... }, RowDataPacket { ... }, ...]
.
Ответ №1:
Предполагая, что вы настроили ввод как
let input = [{ Shipper_Name: ... }, {...}, ...];
Тогда следующий код сделает свое дело
let output = [];
let shipperName = null;
for (let ii = 0; ii < input.length; ii ) {
let val = input[ii];
if (val["Shipper_Name"] !== shipperName) {
shipperName = val["Shipper_Name"];
output.push({Shipper_Name: shipperName});
}
let copy = JSON.parse(JSON.stringify(val));
delete copy["Shipper_Name"];
output.push(copy);
}
console.log(output);