我們有以下 javascript 陣列:
[
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }
]
并且我們希望將后綴添加Agst到除team鍵之外的每個鍵,這樣我們的輸出是:
[
{ team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 },
{ team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 },
{ team: 1, stat1Agst: 17, stat2Agst: 25, var1Agst: 'okay', var3Agst: 'nah', hereAgst: 24 }
]
我們實際物件陣列中的每個物件都有 >100 個鍵,因此我們正在尋找一種解決方案,專門更改除 之外的所有鍵名稱team,而不是更改名稱為 ['stat1', 'stat2', 'var1 的所有鍵', 'var3', 'here'] 如果可能。
uj5u.com熱心網友回復:
您可以使用map和輕松實作結果Object.entries:
const arr = [
{ team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: "okay", var3: "nah", here: 24 },
];
const result = arr.map((o) =>
Object.fromEntries(
Object.keys(o).map((key) =>
key === "team" ? [key, o[key]] : [`${key}Agst`, o[key]]
)
)
);
console.log(result);
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */
.as-console-wrapper { max-height: 100% !important; top: 0; }
uj5u.com熱心網友回復:
這對我來說似乎沒問題。
arr = [
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 },
{ team: 1, stat1: 17, stat2: 25, var1: 'okay', var3: 'nah', here: 24 }
]
arr.forEach((row, index, theArray) => {
let rowKeys = Object.keys(row).filter(key => key !== 'team');
rowKeys.forEach(key => {
theArray[index][`${key}Agst`] = theArray[index][key];
delete theArray[index][key];
});
});
console.log(arr);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/360904.html
下一篇:比較兩個陣列并僅產生值
