JavaScript通过变量设置对象键

我在JavaScript中构建一些对象并将这些对象推送到一个数组中,我将我想要使用的键存储在一个变量中,然后像这样创建我的对象:

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

但是当我尝试为每个对象检查我的对象数组时,键是"key"而不是变量键的值。有没有办法从变量中设置键的值?

更好的解释:http://jsfiddle.net/Fr6eY/3/

1174621 次浏览

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

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,}

在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 }

从ECMAScript 2015开始,对象初始化器语法也支持计算属性名称。这允许您将表达式在括号[]中,将计算并用作属性名称。

对于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"}

用这个。

var key = 'a'var val = 'b'
console.log({[key]:val})
//a:'b'
var key = "happyCount";myArray.push( { [key] : someValueArray } );

在TypeScript中,它应该看起来像这样

    let title ="Current User";type User = {[key:string | number | symbol]: any};
let myVar: User = {};
myVar[ title ] = "App Developer";
console.log(myVar)// Prints: { Current User:"App Developer"}
let key = "name";let name= "john";const obj ={id:01}obj[key] = name;console.log(obj); // output will {id:01,name:"john}

使用方括号显示它将设置为键