【问题标题】:how to find the key in object and update the array in javascript [duplicate]如何在对象中找到键并在javascript中更新数组[重复]
【发布时间】:2020-06-22 14:13:31
【问题描述】:

我有两个对象,一个是 obj1 和 obj2。我需要联系 obj1 details 数组中的 obj2。

const obj1 = {
  name: 'test',
  phone: '233123',
  details: [{
      address1: 'test233',
      address2: 'testts'
    },
    {
      address1: 'test3',
      address2: 'testts'
    }
  ]
}

const obj2 = {
  address1: 'test4',
  address2: 'testts443'
}

obj1['details'].push(obj2);

console.log(obj1)

我尝试使用此代码 obj1['details'].push(obj2); 当我尝试返回 obj1 时,它的返回低于我在 Object assign 中尝试过的输出,但它对我不起作用。

我的输出

obj1 = {
        name:'test',
        phone:'233123'; 
        details: [
            {
                address1:'test233', 
                address2:'testts'
            }, 
            {
                address1:'test3', 
                address2:'testts'
            },
            [{
             address1:'test4', 
             address2:'testts443'
            }]
        ]
    }

我的预期输出是

obj1 = {
            name:'test',
            phone:'233123'; 
            details: [
                {
                    address1:'test233', 
                    address2:'testts'
                }, 
                {
                    address1:'test3', 
                    address2:'testts'
                },
                {
                 address1:'test4', 
                 address2:'testts443'
                }
            ]
        }

【问题讨论】:

  • 我很感兴趣,因为您的obj1['details'].push(obj2); 和建​​议的obj1.details.push(obj2); 本质上是相同的...可能与您在phone 值之后的分号有关吗?如果你用逗号代替它会有什么变化吗?

标签: javascript


【解决方案1】:

一个简单的推我的朋友,

obj1.details.push(obj2)

【讨论】:

  • 这与 OP 的代码有何不同:obj1['details'].push(obj2)?
【解决方案2】:

从您的第二个示例看来,obj2 是一个数组。如果是这种情况,可以使用 concat 函数合并两个数组。

obj1.details = obj1.details.concat(obj2);

【讨论】:

    猜你喜欢
    • 2014-08-21
    • 2022-01-18
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多