Добавить новый элемент и Удалить элементы в массивах объекта - PullRequest
0 голосов
/ 15 мая 2019

Я хочу добавить объект и удалить два объекта в функции

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), но он основан на порядке индекса.Я должен проверить свойство элемента и удалить относительное.

Ответы [ 2 ]

1 голос
/ 15 мая 2019

Вы можете использовать Array.push для добавления элемента:

old1.push({item: "pear", number: 3});

А для удаления на основе условия - вы можете поместить значения, которые вы хотите удалить, в массив, а затем запустить Array.filter

let itemsToRemove = ["banana", "orange"]
let filteredItems = old2.filter(o => !itemsToRemove.includes(o.item));
0 голосов
/ 15 мая 2019

Для массива объектов я использую код, подобный этому, чтобы добавить / обновить их.

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