Найдите объект в массиве JSON и добавьте к нему значение - PullRequest
0 голосов
/ 05 августа 2020

У меня есть такой массив JSON:

[
  {
    id: 1,
    name: 'John'
  },
  {
    id: 2,
    name: 'Jack'
  },
  {
    id: 3,
    name: 'Peter'
  }
]

Я хочу найти объект через него id и добавить к нему deleted: true.

Я интересно, как это сделать проще всего.

Ответы [ 3 ]

2 голосов
/ 05 августа 2020

Вы можете использовать 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);
2 голосов
/ 05 августа 2020

Попробуйте это:

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)

Он выполняет l oop через каждый элемент в массиве. Затем он проверяет, имеет ли соответствующий индексированный элемент искомое значение. Если да, он добавляет атрибут true с именем deleted и выходит из l oop.

2 голосов
/ 05 августа 2020

Вы можете использовать приведенную ниже функцию generi c, которая требует от вас передачи массива и идентификатора объекта, который вы хотите обновить.

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));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...