【问题标题】:How to add dynamic key with value in existing Javascript object? [duplicate]如何在现有 Javascript 对象中添加具有值的动态键? [复制]
【发布时间】:2019-07-03 22:44:25
【问题描述】:

我有一个现有的 javascript 对象。

let existingObject = {
    1: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    },
    2: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    },
    3: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    }
}

我想为该现有对象添加一个属性。我的新键值为:

const key = 4;
const value = {
    'prop1': 'prop1 value',
    'prop2': 'prop2 value'
}

附加键和值后,我的新对象应该是,

const newObject = {
    1: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    },
    2: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    },
    3: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    },
    4: {
        'prop1': 'prop1 value',
        'prop2': 'prop2 value'
    }
}

这里的键是一个动态值。每当我尝试附加此键值时,键都会成为变量名。

我该如何解决这个问题?

注意:为了创建现有对象,我使用的是 lodash。

【问题讨论】:

标签: javascript lodash javascript-objects


【解决方案1】:

您可以使用Object.assign()Computed Property names 来执行此操作(例如{[key]: value}):

let existingObject = {
    1: {'prop1': 'prop1 value', 'prop2': 'prop2 value'},
    2: {'prop1': 'prop1 value', 'prop2': 'prop2 value'},
    3: {'prop1': 'prop1 value', 'prop2': 'prop2 value'}
}

const key = 4;
const value = {'prop1': 'prop1 value', 'prop2': 'prop2 value'}

Object.assign(existingObject, {[key]: value});
console.log(existingObject);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}

但是,正如其他人向您评论的那样,这很简单:

existingObject[key] = value;

【讨论】:

    猜你喜欢
    • 2015-09-25
    • 2016-09-21
    • 2021-12-25
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    相关资源
    最近更新 更多