为了账号安全,请及时绑定邮箱和手机立即绑定

在 JSON 数组中查找对象并为其添加值

在 JSON 数组中查找对象并为其添加值

呼唤远方 2022-12-22 13:10:03
我有一个像这样的 JSON 数组:[  {    id: 1,    name: 'John'  },  {    id: 2,    name: 'Jack'  },  {    id: 3,    name: 'Peter'  }]我想通过它找到一个对象id并添加一个deleted: true。我想知道最简单的方法是什么。
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

您可以使用下面的通用函数,它需要您传递要更新的对象的数组和 ID。


var arr = [

  {

    id: 1,

    name: 'John'

  },

  {

    id: 2,

    name: 'Jack'

  },

  {

    id: 3,

    name: 'Peter'

  }

];


 function addProperty(data,id){

data.forEach(obj => {

  if(obj.id === id){

    obj['deleted'] = true;

  }

});

   return data;

 }


let id = 1;

console.log(addProperty(arr, id));


查看完整回答
反对 回复 2022-12-22
?
智慧大石

TA贡献1946条经验 获得超3个赞

您可以使用Array.prototype.find这将是最简单的方法


let users = [

  {

    id: 1,

    name: 'John'

  },

  {

    id: 2,

    name: 'Jack'

  },

  {

    id: 3,

    name: 'Peter'

  }

];

let id = 3;

let foundUser = users.find(user => user.id === id);


console.log('Users before modification', users);

foundUser.deleted = true;

console.log('Users after modification', users);


查看完整回答
反对 回复 2022-12-22
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

试试这个:


var array = [

    {

        id: 1,

        name: 'John'

    },

    {

        id: 2,

        name: 'Jack'

    },

    {

        id: 3,

        name: 'Peter'

    }

]


for (var item in array){

    if (array[item].id === 1){

        array[item].deleted = true;

        break;

    }

}

console.log(array)

它所做的是遍历数组中的每个项目。然后它检查相应的索引项是否具有我们要查找的值。如果是,它会添加一个true名为的属性deleted并跳出循环。



查看完整回答
反对 回复 2022-12-22
  • 3 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信