在ES6中是否有办法将对象数组中所有对象的键值设置为新值。
[
{title: 'my title', published: false},
{title: 'news', published: true},
...
]
例如,将每个项目published
设置为true
?
答案 0 :(得分:3)
示例中的数组只是一维对象数组。
你可以用clickedBtn
和lambda:
forEach
答案 1 :(得分:1)
使用map
arr = arr.map( s => (s.published = true, s) );
修改强>
无需设置返回值,只需
arr.map( s => (s.published = true, s) );
就足够了
<强>演示强>
var arr = [{
title: 'my title',
published: false
},
{
title: 'news',
published: true
}
];
arr.map(s => (s.published = true, s));
console.log(arr);
&#13;
答案 2 :(得分:1)
我会使用循环。
arr
表示您的对象数组
var result = []
for (var i = 0; i < arr.length; i++) {
result.push([arr[i].title, arr[i].published])
}
console.log(result)
这将导致[['my Title', false], ['news', true]]
答案 3 :(得分:0)
如果您不想要循环,可以使用索引进行引用。
a = [
{title: 'my title', published: false},
{title: 'news', published: true}
]
a[0].published= true;
a[1].published= true;
或循环
for (val in a) {
a[val].published = true;
}
答案 4 :(得分:0)
您可以将map
功能与展开运算符
let array = [
{ title: 'my title', published: false },
{ title: 'news', published: true }
]
array = array.map(t => t.published !== true ? { ...t, published: true } : t)