我正在嘗試重塑一些要在表格中使用的資料。為此,我將映射一個陣列,然后遍歷其中的一個物件,以創建一個包含我想要的資料的新物件。我遇到的問題是,如果物件內部包含多個物件,我只會為第一項獲得一個新物件。
我正在嘗試為里面的每個物件獲取一個新物件changedProperties
任何人都可以幫忙嗎?/ 解釋?
這是一個作業示例:
const MOCK_DATA = [
{
triggeredByID: "d5ae18b7eb6f",
triggeredByName: "name",
changedProperties: {
LastName: {
__oldValue: "Mallory",
__newValue: "Mallorie",
},
Suffix: {
__oldValue: "DO",
__newvValue: "NP",
},
},
createdAt: "2022-06-01T10:20:21.329337652Z",
},
{
triggeredByID: "d5ae18b7eb6f",
triggeredByName: "John",
changedProperties: {
State: {
__oldValue: ["TX", "AL"],
__newValue: ["TX", "AL", "FL"],
},
City: {
__oldValue: "Austin",
__newValue: "San Antonio",
},
},
createdAt: "2022-06-01T10:20:21.329337652Z",
},
];
const changedProperties = MOCK_DATA.map((item, idx) => {
for (const [key, value] of Object.entries(item.changedProperties)) {
return {
field: key,
old: item.changedProperties[key].__oldValue,
new: item.changedProperties[key].__newValue,
name: item.triggeredByName,
createdAt: item.createdAt,
};
}
});
console.log(changedProperties)
uj5u.com熱心網友回復:
是的,如果你在 for 回圈中回傳,它的作用域是函式。這意味著您將在回圈的第一次迭代中從整個函式回傳。試試這個:
const changedProperties = MOCK_DATA.map((item, idx) => {
return Object.entries(item.changedProperties).map(([key, value]) => {
return {
field: key,
old: item.changedProperties[key].__oldValue,
new: item.changedProperties[key].__newValue,
name: item.triggeredByName,
createdAt: item.createdAt,
};
}
});
console.log(changedProperties)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/485963.html
標籤:javascript for循环 目的 array.prototype.map
上一篇:更新嵌套陣列React中的物件值
下一篇:如何更新陣列中物件的所有值?
