我正在研究导出功能。但来自API的数据不在所需的序列中(数组中对象的键(。所以我想更改对象中单个行的键序列。数据就像这个
data = [
{
"key4":"value4",
"key1":"value1",
"key5":"value5",
"key3":"value3",
"key2":"value2"
},
{
"key4":"value4",
"key1":"value1",
"key5":"value5",
"key3":"value3",
"key2":"value2"
}
]
我想要像这样的输出
data =[ {
"key1":"value1",
"key2":"value2",
"key3":"value3",
"key4":"value4",
"key5":"value5"
},
{
"key1":"value1",
"key2":"value2",
"key3":"value3",
"key4":"value4",
"key5":"value5"
}
]
您可以将.map
与Object.entries
和Object.fromEntries
一起使用,并根据关键字进行排序:
data = [
{
"key4":"value4",
"key1":"value1",
"key5":"value5",
"key3":"value3",
"key2":"value2"
},
{
"key4":"value4",
"key1":"value1",
"key5":"value5",
"key3":"value3",
"key2":"value2"
}
].map((item) =>
Object.fromEntries(
Object.entries(item).sort(
(a, b) => a[0].localeCompare(b[0])
)
)
)
console.log(data);
我在angular中使用以下代码解决了这个问题。
let headerList = ["key1", "key2", "key3", "key4", "key5"]
let newExportData = [];
data.forEach(obj => {
let json = {};
headerList.forEach(header => {
json[header] = obj[header];
});
newExportData.push(json);
});
console.log(newExportData);