如何在现有 Javascript 对象中添加具有值的动态键? [复制]

Posted

技术标签:

【中文标题】如何在现有 Javascript 对象中添加具有值的动态键? [复制]【英文标题】:How to add dynamic key with value in existing Javascript object? [duplicate] 【发布时间】: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。

【问题讨论】:

existingObject[key] = value How can I add a key/value pair to a JavaScript object? 和 JavaScript set object key by variable 的可能重复 如果你想要连续的数字键,为什么不使用数组? 你甚至没有在这里展示任何代码尝试。 【参考方案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;

【讨论】:

以上是关于如何在现有 Javascript 对象中添加具有值的动态键? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有默认值的两列添加到配置单元中的现有表?

使用Javascript将对象添加到现有对象[重复]

将具有默认值的列添加到 SQL Server 中的现有表

Javascript:仅使用另一个对象中的字段覆盖一个对象中的现有字段

将新属性添加到另一个数组中的现有对象数组

Laravel 迁移:添加具有现有列默认值的列