Добавление ключа в массив путем нахождения значения AngularJS - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь добавить дополнительный ключ в массив JSON путем поиска любого значения ключа.

Пример JSON: -

[
  {
    "$id": "2025",
    "ID": 41,
    "Name": "APPLE"
  },
  {
    "$id": "2026",
    "ID": 45,
    "Name": "MANGO"
  },
  {
    "$id": "2027",
    "ID": 48,
    "Name": "GUAVA"
  }
]

Предположим, мне нужно добавить пример новой пары ключей "Price": 50 после "Name": "MANGO" или найти идентификатор ID": 45.Поэтому мой ожидаемый новый JSON будет: -

[
  {
    "$id": "2025",
    "ID": 41,
    "Name": "APPLE"
  },
  {
    "$id": "2026",
    "ID": 45,
    "Name": "MANGO",
    "Price": 50
  },
  {
    "$id": "2027",
    "ID": 48,
    "Name": "GUAVA"
  }
]

Он должен добавить объект, связанный с соответствующим ключом поиска.

Итак, я не могу найти какую-либо функцию, связанную свыпуск.

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Вы можете попробовать:

data.find(item => item.ID === 45).price = 50;

Для покрытия случая, если предмет недоступен:

(data.find(item => item.ID === 45) || {}).price = 50;   
0 голосов
/ 30 мая 2018

Вы можете использовать array#find для сравнения ID.Затем на основании этого вы можете добавить Price ключ к объекту.

let arr = [ { "$id": "2025", "ID": 41, "Name": "APPLE" }, { "$id": "2026", "ID": 45, "Name": "MANGO" }, { "$id": "2027", "ID": 48, "Name": "GUAVA" } ],
    id = 45,
    obj = arr.find(({ID}) => ID === id);
if(obj);
  obj.Price = 50;
console.log(arr);
0 голосов
/ 30 мая 2018

Вы можете запустить цикл и проверить условие, а затем добавить свойство к объекту.Вот бегущий фрагмент кода.Вы можете прочитать здесь больше о объектах JavaScript

var myarray = [
                {
                    "$id": "2025",
                    "ID": 41,
                    "Name": "APPLE"
                },
                {
                    "$id": "2026",
                    "ID": 45,
                    "Name": "MANGO"
                },
                {
                    "$id": "2027",
                    "ID": 48,
                    "Name": "GUAVA"     
                }
]
for(var i=0;i<myarray.length;i++){
  if(myarray[i].$id === "2025" || myarray[i].Name === "APPLE"){
    var data = myarray[i];
    data.price = 50
  }
}
console.log(myarray)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...