Javascript 如何向现有的JSON对象数组插入新的键值?
我有下面的JSON数组 const data=[{id:1,名称:'a'},{id:2,名称:'b'},{id:3,名称:'c'}] 我必须为每个对象插入一个属性,预期结果如下 const data=[{id:1,名称:'a',selected:false},{id:2,名称:'b',selected:false},{id:3,名称:'c',selected:false}] 我只想实现这个javascriptJavascript 如何向现有的JSON对象数组插入新的键值?,javascript,arrays,json,lodash,javascript-objects,Javascript,Arrays,Json,Lodash,Javascript Objects,我有下面的JSON数组 const data=[{id:1,名称:'a'},{id:2,名称:'b'},{id:3,名称:'c'}] 我必须为每个对象插入一个属性,预期结果如下 const data=[{id:1,名称:'a',selected:false},{id:2,名称:'b',selected:false},{id:3,名称:'c',selected:false}] 我只想实现这个javascript 请在这方面帮助我。您只需要一个简单的循环 for (let item of data)
请在这方面帮助我。您只需要一个简单的循环
for (let item of data) {
item.selected = false;
}
在该循环的每次迭代中,项成为迭代对象数据中的下一个项(在本例中)。由于数组仍然引用这些相同的对象,您可以修改项,并且此修改也会显示在数据中的项上。。。还是因为它是同一个对象。这个问题没有达到Stackoverflow的标准,但从您的评论来看,我相信您正在认真寻找一个比您的声誉更重要的解决方案 答案是一种简单的老式方法,请参考并尝试一下。谢谢 const data=[{id:1,名称:'a',selected:false},{id:2,名称:'b',selected:false},{id:3,名称:'c',selected:false}] data.forEachelement,索引=>{ 元素[所选]=false, 元素[test]=索引+1//任何键值对 };
控制台,太好了!到目前为止你尝试了什么?那不是JSON。。。只是一个普通的对象literal.data.mapval=>{…val,selected:false}我已经试过了。。data.mapx=>{x['selected']=false;}对不起,我是新手,实际上我已经试过了。。const newState=this.state.data.mapx=>{x['selected']=false;}因此状态没有更改,newState变得未定义。。现在我已经分配给另一个变量,一旦修改,现在我使用setState来更新newState。非常感谢…@Cegone抱歉,你只提到JavaScript,所以只有我发布了这个答案。谢谢
var data = [{id:1,name:'a'},{id:2,name:'b'},{id:3,name:'c'}];
for (i = 0; i < data.length; i++) {
// add the addition property using dot notation
data[i].selected = 'false';
}
// output to console the updated data
console.log(data);