搜索

首页  >  问答  >  正文

JavaScript 通过变量设置对象键

我正在 JavaScript 中构建一些对象并将这些对象推入数组中,我将要在变量中使用的密钥存储在变量中,然后创建我的对象,如下所示:

var key = "happyCount";
myArray.push( { key : someValueArray } );

但是当我尝试检查每个对象的对象数组时,键是 "key" 而不是变量键的值。有什么方法可以从变量中设置键的值吗?

小提琴以获得更好的解释: http://jsfiddle.net/Fr6eY/3/

P粉106301763P粉106301763441 天前570

全部回复(2)我来回复

  • P粉321676640

    P粉3216766402023-10-10 10:06:39

    在 ES6 中,你可以这样做。

    var key = "name";
    var person = {[key]:"John"}; // same as var person = {"name" : "John"}
    console.log(person); // should print  Object { name="John"}

        var key = "name";
        var person = {[key]:"John"};
        console.log(person); // should print  Object { name="John"}

    其名为计算属性名称,它使用括号表示法(方括号)[]

    实现

    示例:{ [variableName] : someValue }

    对于 ES5,尝试这样的操作

    var yourObject = {};
    
    yourObject[yourKey] = "yourValue";
    
    console.log(yourObject );

    示例:

    var person = {};
    var key = "name";
    
    person[key] /* this is same as person.name */ = "John";
    
    console.log(person); // should print  Object { name="John"}

        var person = {};
        var key = "name";
        
        person[key] /* this is same as person.name */ = "John";
        
        console.log(person); // should print  Object { name="John"}

    回复
    0
  • P粉579008412

    P粉5790084122023-10-10 00:58:48

    您需要先创建对象,然后使用[]设置它。

    var key = "happyCount";
    var obj = {};
    
    obj[key] = someValueArray;
    myArray.push(obj);

    2021 年更新:

    计算属性名称功能在 ECMAScript 2015 (ES6) 中引入,它允许您以 JavaScript 对象文字表示法动态计算对象属性的名称。

    const yourKeyVariable = "happyCount";
    const someValueArray= [...];
    
    const obj = {
        [yourKeyVariable]: someValueArray,
    }

    回复
    0
  • 取消回复