Modify object property in an array of objects

后端 未结 11 1219
抹茶落季
抹茶落季 2020-11-29 07:09
var foo = [{ bar: 1, baz: [1,2,3] }, { bar: 2, baz: [4,5,6] }];

var filtered = $.grep(foo, function(v){
    return v.bar === 1;
});

console.log(filtered);
<         


        
11条回答
  •  余生分开走
    2020-11-29 07:41

    you can play around:

    const tasks = [ { id: 1, done: false }, { id: 2, done: false } ]
    const completed_task = { id: 1, done: true }
    
    const markCompleted = (tasks, task) => {
      const index = tasks.findIndex(t => t.id === task.id);
      tasks.splice(index, 1);
      tasks.push(task);
      return tasks;
    }
    
    console.log(tasks)
    console.log(markCompleted(tasks, completed_task))

    EDIT

    to avoid index change:

    const markCompleted = (tasks, task) => {
          const index = tasks.findIndex(t => t.id === task.id);
          tasks[index] = task;
          return tasks;
        }
    

提交回复
热议问题