我有一个类似于下面的数据 struct ;我只是列出了项,但是,有些项具有嵌套项.出于这个问题的目的,我将具有嵌套对象的对象称为"段".
data = [
{title: "Section 1", items: [{id: "1"}, {id: "2"}]},
{title: "Section 2", items: [{id: "3"}, {id: "4"}]},
{id: "5"},
{id: "6"},
{id: "7"},
]
我正在try 遍历"部分"中的项,然后再循环其余的项,但是,我得到了上面的错误.
try 1:
function addIsFavourite(favourites = [], sections) {
for (const section of sections) {
if ("items" in section) {
// Section has nested items
for (const item of section.items) {
item.isFavourite = favourites.includes(item.id);
}
} else {
// Section holds items directly
for (const item of section) {
item.isFavourite = favourites.includes(item.id);
}
}
}
return sections;
}
返回错误
[TypeError:迭代器方法不可调用]
try 2:
function addIsFavourite(favourites = [], sections) {
if ("items" in sections) {
for (const section of sections) {
for (const item of section.items) {
item.isFavourite = favourites.includes(item.id);
}
}
} else {
for (const item of sections) {
item.isFavourite = favourites.includes(item.id);
}
}
return sections;
}
这只适用于第一个"部分".