更新对象数组而不会发生突变 [英] Updating an array of objects without mutation
本文介绍了更新对象数组而不会发生突变的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如果我有一个对象:
[
{
"value":"d1",
"label":"bathstore.com",
"selected":true
},
{
"value":"d2",
"label":"superdrug.com",
"selected":true
},
{
"value":"d3",
"label":"papajohns.com",
"selected":true
}
]
如何使用传播运算符或Object.assign()将'selected'字段的每个值更改为'false',以避免对象突变?
how can I change every value of 'selected' field to 'false' using spread operator or Object.assign() to avoid object mutation?
推荐答案
您可以使用 map
遍历数组,并在每个回调内部使用传播语法创建具有更新属性的新对象:
You can iterate over array with map
and inside each callback use spread syntax to create new objects with updated property:
let data = [
{
"value":"d1",
"label":"bathstore.com",
"selected":true
},
{
"value":"d2",
"label":"superdrug.com",
"selected":true
},
{
"value":"d3",
"label":"papajohns.com",
"selected":true
}
];
let newData = data.map((item) => {
return {...item, selected: false};
});
console.log(newData);
这篇关于更新对象数组而不会发生突变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文