我正在使用JavaScript构建一些对象,并将这些对象推入数组中,我将要使用的键存储在一个变量中,然后像这样创建我的对象:
var key = "happyCount";
myArray.push( { key : someValueArray } );
但是当我尝试检查我的对象数组时,每个对象的键都是"key"
而不是变量key的值。是否有方法可以从变量设置键的值?
更好的说明请参考以下链接: http://jsfiddle.net/Fr6eY/3/
我正在使用JavaScript构建一些对象,并将这些对象推入数组中,我将要使用的键存储在一个变量中,然后像这样创建我的对象:
var key = "happyCount";
myArray.push( { key : someValueArray } );
但是当我尝试检查我的对象数组时,每个对象的键都是"key"
而不是变量key的值。是否有方法可以从变量设置键的值?
更好的说明请参考以下链接: http://jsfiddle.net/Fr6eY/3/
你需要首先创建对象,然后使用[]
来设置它。
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,
}
{[key]:someValueArray}
。 - Frank N在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 = "happyCount";
myArray.push( { [key] : someValueArray } );
在ES6中,我们可以像这样编写对象
const key= "Name";
const values = "RJK"
const obj = {
[key]: values,
}
使用这个。
var key = 'a'
var val = 'b'
console.log({[key]:val})
//a:'b'
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}
使用方括号,它将被设置为键
var key = "happyCount";
const someValueArray= [1, 3, 5, 7];
key
原样:myArray.push({
[key]: someValueArray
});
myArray.push({
[`${key}Array`]: someValueArray
});
var key = "happyCount"; myArray.push({ [key]: someValueArray });
- Dan Cron