我有一个对象数组,每个对象都有标题、内容和contentHTML。我想映射此数组并创建一个新对象。新的对象将取得标题属性的值,并将其用作每个内容和contentHTML属性的父属性。下面的代码似乎只获取了数组中的最后一个对象。
结果如下:
预期结果是:
{
"sidebar": {
"text": "Some sidbar text here",
"content": "<p>Some sidebar text here</p>"
}
}
预期结果是:
{
header: {
text: "Some header text here",
content: "<p>Some header text here</p>"
},
footer: {
text: "Some footer text here",
content: "<p>Some footer text here</p>"
},
sidebar: {
text: "Some sidbar text here",
content: "<p>Some sidebar text here</p>"
}
}
var originalObj = [{
title: "header",
content: "Some header text here",
contentHTML: "<p>Some header text here</p>"
},
{
title: "footer",
content: "Some footer text here",
contentHTML: "<p>Some footer text here</p>"
},
{
title: "sidebar",
content: "Some sidbar text here",
contentHTML: "<p>Some sidebar text here</p>"
}
];
let newObject = {};
for (let item of originalObj) {
var tempObj = {
[item.title]: {
text: item.content,
content: item.contentHTML
}
};
newObject = tempObj;
}
console.log(newObject);
newObject[item.title] = {text:item.content, content:item.contentHTML};
的事情。 - Niet the Dark AbsoltempObj
是冗余的。您可以通过将tempObj
替换为newObject
(位于var
和splat
旁边),然后您也不需要newObject = tempObj;
来获得相同的结果。 - James