【问题标题】:Merge two JS key value arrays合并两个JS键值数组
【发布时间】:2019-12-03 20:42:52
【问题描述】:

我需要合并两个 JS 数组,但是使用 concat fn 或 lodash 库我做不到...

我有两个这样的数组:

[ test2: 'string', test: 'string' ]

[ nome: 'string',test2: 'string', test: 'string' ]

我需要的是这样的结果数组:

[ test2: 'string', test: 'string', nome: 'string' ]

我该怎么做?我尝试了几种方法都没有成功...

数组连接不起作用...

谢谢

【问题讨论】:

  • 那些不是数组(也不是任何类型的有效 JS 文字)
  • 这些不是数组。你展示的是一个对象。
  • @VLAZ 甚至没有...
  • 好的,我怎样才能合并两个这样的对象?
  • 因此,如果您要使用 {key: value} 使它们成为有效对象,会覆盖哪个对象,1 还是 2?

标签: javascript arrays node.js


【解决方案1】:

您将数组用作键:值对,但在 Javascript 中,数据类型是对象。您的两个输入变成了对象,如下所示:

{ test2: 'string', test: 'string' }

{ nome: 'string', test2: 'string', test: 'string' }

要合并这两个对象,您可以使用 ECMAScript 2018 Object Spread 语法。

const obj1 = { test2: 'string', test: 'string' };
const obj2 = { nome: 'string',test2: 'string', test: 'string' };
const newObj = {...ob1, ...ob2}

请注意,由于您的对象共享相同的名称和值对,因此test:'string'test2:'string' 只有一份副本

【讨论】:

    【解决方案2】:

    var obj1 = { 'test2': 'string', 'test': 'string' };
    
    var obj2 = { 'nome': 'string','test2': 'string', 'test': 'string' };
    
    const object3 = {...obj1, ...obj2 }
    
    console.log(object3)

    如果两个对象都有同名的属性,那么第二个 对象属性覆盖第一个。

    【讨论】:

      猜你喜欢
      • 2018-06-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 2018-09-02
      • 2014-11-24
      • 2013-09-12
      • 2022-01-10
      相关资源
      最近更新 更多