我正在嘗試修改一個陣列。我有以下json。
[
{ state: "NY", key: "A", value: "Alarm" },
{ state: "CT", key: "A", value: "Alarm" },
{ state: "NH", key: "A", value: "Alarm" },
{ state: "CT", key: "B", value: "Audible and Etched" },
{ state: "NH", key: "B", value: "Audible and Etched" },
{ state: "NY", key: "AA", value: "Active Disabling and Anti-Theft" },
{ state: "FL", key: "B", value: "Audible and Etched" },
{ state: "FL", key: "A", value: "Alarm" },
{ state: "FL", key: "AA", value: "Active Disabling and Anti-Theft" }
]
根據每個獨特的狀態,我需要將鍵、值分組到下拉陣列中,如下所示
[{
state: "NY",
dropdown: [
{ key: "A", value: "Alarm" },
{ key: "AA", value: "Active Disabling and Anti-Theft" }
]
},
{
state: "CT",
dropdown: [
{ key: "A", value: "Alarm" },
{ key: "B", value: "Audible and Etched" }
]
},
{
state: "NH",
dropdown: [
{ key: "A", value: "Alarm" },
{ key: "B", value: "Audible and Etched" }
]
},
{
state: "FL",
dropdown: [
{ key: "A", value: "Alarm" },
{ key: "B", value: "Audible and Etched" },
{ key: "AA", value: "Active Disabling and Anti-Theft" }
]
}]
任何幫助,將不勝感激。謝謝。
uj5u.com熱心網友回復:
您可以使用Array.reduce來獲取修改后的陣列。
const inputArray = [
{ state: "NY", key: "A", value: "Alarm" },
{ state: "CT", key: "A", value: "Alarm" },
{ state: "NH", key: "A", value: "Alarm" },
{ state: "CT", key: "B", value: "Audible and Etched" },
{ state: "NH", key: "B", value: "Audible and Etched" },
{ state: "NY", key: "AA", value: "Active Disabling and Anti-Theft" },
{ state: "FL", key: "B", value: "Audible and Etched" },
{ state: "FL", key: "A", value: "Alarm" },
{ state: "FL", key: "AA", value: "Active Disabling and Anti-Theft" }
];
const result = inputArray.reduce((acc, item) => {
const exist = acc.find(e => e.state == item.state);
if (exist) {
exist.dropdown.push({
key: item.key,
value: item.value
})
} else {
acc.push({
state: item.state,
dropdown: [{
key: item.key,
value: item.value
}]
});
}
return acc;
}, []);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/314765.html
標籤:javascript 节点.js 有角的 打字稿
下一篇:如何修補嵌套表單陣列?
