我正在 JavaScript 中构建一些对象并将这些对象推入数组中,我将要在变量中使用的密钥存储在变量中,然后创建我的对象,如下所示:
var key = "happyCount";
myArray.push( { key : someValueArray } );
但是当我尝试检查每个对象的对象数组时,键是
"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,
}
在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'
在 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}
使用方括号显示它将设置为键
给定
var key = "happyCount";
const someValueArray= [1, 3, 5, 7];
按原样使用
key
:
myArray.push({
[key]: someValueArray
});
要将
key
与其他前缀或后缀一起使用:
myArray.push({
[`${key}Array`]: someValueArray
});
来源:计算属性名称