ES6: Как поместить уникальные значения в массив при добавлении дубликатов? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть массив объектов, таких как:

[
  {
    "name": "Apple",
    "amount": 5
  },
  {
    "name": "Tomato",
    "amount": 10
  }
]

Требуется, когда я нажимаю на объект типа

{
   "name": "Apple",
   "amount": 10
}

Ожидаемый результат:

[
  {
    "name": "Apple",
    "amount": 15
  },
  {
    "name": "Tomato",
    "amount": 10
  }
]

Нопри нажатии уникальной записи, такой как {"name":"Orange","amount":15}, результирующий массив должен быть:

[{"name":"Apple","amount":5},{"name":"Tomato","amount":10},{"name":"Orange","amount":15}]

1 Ответ

0 голосов
/ 14 сентября 2018

Псевдокод:
1) проверьте, существует ли запись.
2) получить индекс
3) если существует, обновите массив объектов
3) если не существует, нажмите запись в массив объектов

const x = [{"name":"Apple","amount":5},{"name":"Tomato","amount":10}]
const toPush =  {"name":"Apple","amount":30}


//(1 & 2) it would return a value greater than  or equal to 0 if it exist
var indx= x.findIndex(q=>q.name == toPush.name)

// 3
if( getIndex >= 0 ) {
   x[indx] = toPush
}

// 4
else {
  x.push(toPush)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...