【问题标题】:How to add value to an object which is inside an array in JavaScript?如何为 JavaScript 数组中的对象添加值?
【发布时间】:2020-02-22 21:16:49
【问题描述】:

我有一个包含多个对象的数组,

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 中做到这一点?

【问题讨论】:

  • 是的,你可以用 javascript 来做。
  • 请让我知道我完全陷入了这个困境。
  • 你想要一个包含新对象的新数组吗?
  • 两者都对我有用,如果可能的话,让我知道这两种方式。(数组中有 300-400 个对象,所以尝试一种有效的方式)

标签: javascript arrays react-native object arrayobject


【解决方案1】:

您可以采用非变异方法,并在不更改给定数据的情况下获取包含新对象的新数组。

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);

【讨论】:

  • 谢谢,Nina,您的代码运行得非常顺利,非常感谢。我可以给你买杯咖啡吗?无论如何,我如何与您建立社交联系?非常非常感谢
  • 创建新对象不是比写入同一个对象慢吗?
  • @TheMaster,是的。有关系吗?
  • 我的意思是操作说,所以请尝试用有效的代码回复。所以,我想知道它是否有效。您特别提到了非变异方法。所以,只是想知道我是否遗漏了什么。
【解决方案2】:

你也可以这样用

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; }

【讨论】:

    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2019-04-28
    • 2019-06-13
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多