在对象数组中添加新元素和删除元素

时间:2019-05-15 20:23:50

标签: javascript arrays object

我想在函数中添加一个对象并删除两个对象

const old1 = [
    {item: "apple", number: 13}
]
const old2 = [
    {item: "apple", number: 13},
    {item: "banana", number: 11},
    {item: "orange", number: 13}
]

首先,我想在数组中添加一个对象

const add = {item: "pear", number: 3}

然后我要检查数组是否具有这些元素,如果是,则将其删除。在这里,我要删除“香蕉”和“橙色”

const new2 =[
    {item: "pear", number: 3},
    {item: "apple", number: 13}
]

我尝试过old1.unshift添加一个元素。 我还尝试了old2.splice(0,2)删除元素,但它基于索引顺序。我应该检查item属性并删除相对属性。

2 个答案:

答案 0 :(得分:1)

您可以使用old1.push({item: "pear", number: 3}); 添加元素:

Array.filter

对于基于条件的删除-您可以将要删除的值放入数组中,然后运行let itemsToRemove = ["banana", "orange"] let filteredItems = old2.filter(o => !itemsToRemove.includes(o.item));

echo

答案 1 :(得分:0)

对于一组对象,我使用类似于此的代码来添加/更新它们。

addUpdateItem(item, arr) {
  let ind = arr.map(i => i.id).indexOf(item.id) //find the position of element if exists
  if(ind != -1) { //this means the item was found in the array

    //normally I would want to update the item if it existed
    Object.assign(arr[ind], item) //update the item

    //but if you wanted to remove the item instead
    arr.splice(ind, 1) //removes the item


  } else {
    arr.push(item)
  }
}