Как добавить значение к объекту, который находится внутри массива в JavaScript? - PullRequest
2 голосов
/ 23 февраля 2020

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

const tokens = 
      [ { to: "abc", sound: "default" } 
      , { to: "def", sound: "ring"    } 
      , { to: "ghi", sound: "vibrate" } 
      ] 

Далее я хочу добавить к каждому объекту 2 разных значения, скажем, заголовок и тело, примерно так: -

Примечание: - У меня более 300-400 объектов в массиве «токены», поэтому, пожалуйста, попробуйте ответить эффективным кодом

const tokens = 
      [ { to: "abc", sound: "default", title: "test", body: "test2" } 
      , { to: "def", sound: "Ring",    title: "test", body: "test2" } 
      , { to: "ghi", sound: "vibrate", title: "test", body: "test2" }
      ]

Пожалуйста, дайте мне знать, как это можно сделать в JavaScript?

Ответы [ 2 ]

3 голосов
/ 23 февраля 2020

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

var tokens = [{ to: "abc", sound: "default" }, { to: "def", sound: "Ring" }, { to: "ghi", sound: "vibrate" }],
    result = tokens.map(o => ({ ...o, title: "test", body: "test2" }));

console.log(result);
1 голос
/ 23 февраля 2020

Вы также можете использовать этот способ

const tokens = 
      [ { to: "abc", sound: "default" } 
      , { to: "def", sound: "ring"    } 
      , { to: "ghi", sound: "vibrate" } 
      ] 


tokens.forEach(e=>{ e.title= "test"; e.body= "test2" })

console.log( tokens )
.as-console-wrapper { max-height: 100% !important; top: 0; }

другим способом:

const tokens = 
      [ { to: "abc", sound: "default" } 
      , { to: "def", sound: "ring"    } 
      , { to: "ghi", sound: "vibrate" } 
      ] 
      newElements = {title:'test', body:'test2'}
      ;
tokens.forEach(e=>Object.assign(e, newElements))

console.log( tokens )
.as-console-wrapper { max-height: 100% !important; top: 0; }
...