我尝试使用 forEach 函数更改数组中每个属性的值,但没有任何运气。
这是我的阵列:
this.panels = [
{ isRandomPanel : false },
{ isMyPanel : false },
{ isFavorite : false },
{ isEatable : false }
]
我试图将每个属性的值更新为 true ,所以最后我可以得到这个:
isRandomPanel = true
isMyPanel = true
isFavorite = true
isEatable = true
我试图使用forEach功能,但我被卡住了:
this.panels.forEach(panel => panel.isRandomPanel = true);
有没有人知道如何使用纯Javascript,TypeScript或ES6实现这一点?
答案 0 :(得分:1)
如果这些是对象上的唯一键,则可以迭代Object.keys(panel)
并设置每个panel[key] = true
,如下所示:
var panels = [
{ isRandomPanel : false },
{ isMyPanel : false },
{ isFavorite : false },
{ isEatable : false }
];
// set all panel flags to true
panels.forEach(function (panel) {
Object.keys(panel).forEach(function (key) {
panel[key] = true;
});
});
console.log(panels);
或者,缩短ES6语法:
panels.forEach(panel => Object.keys(panel).forEach(key => panel[key] = true));
答案 1 :(得分:1)
您需要对数组进行更新,从对象获取每个键并将该键的值设置为true。您可以使用Object.keys
或for in
循环来获取密钥:
this.panels.forEach(panel => {
for(const key of Object.keys(panel))
panel[key] = true
})
OR
this.panels.forEach(panel => {
for(const key in panel)
panel[key] = true
})
答案 2 :(得分:-1)
当您使用ES 6时,以下内容将起作用
panels.forEach(panel => Object.keys(panel).forEach(key => panel[key] = true));