你能在JS对象中计算属性名吗?
Can you evaluate a property name within a JS object?
我知道你可以在JS对象中计算属性的值,就像下面这样:
let object = {
value: 5+5
};
我想知道是否有任何可能的方法来评估与JS属性的名称,即实现以下:
let object;
object[5+5].value = "ten";
就像:
let object = {
5+5: "ten"
};
在ES2015中是可以的,在ES5中不是,但首先让我们弄清楚一件事:那是JavaScript,不是JSON。
在ES2015(以前称为ES6)中:
var something = "foo";
var object = {
[something]: "bar";
};
alert(object.foo); // "bar"
在[ ]
中可以是任何您喜欢的表达式。返回的值被强制转换为字符串。这意味着你可以用
var counter = function() {
var counter = 1;
return function() {
return counter++;
};
};
var object = {
["property" + counter()]: "first property",
["property" + counter()]: "second property"
};
alert(object.property2); // "second property"
JSON是一种受JavaScript对象初始化器语法启发的序列化格式。在JSON中绝对没有办法做到这一点。
当然。试试这个:
'use strict';
let object = {
[5+5]: "ten"
};
console.log(object); // Object {10: "ten"}
相关文章:
- 如何在自定义指令中获取计算的属性
- Ember服务在注入组件并在计算属性中使用后是未定义的
- 如何计算一个对象中五个属性中有多少是非null的
- 使用javascript动态计算top属性
- 如何递归地计算它在对象中出现的目标键(属性)的数量
- Ember.js:未在组件'中渲染的模型的计算属性;关于变更的参考
- 升级到Ember 1.0计算属性在视图中不再有效
- ES6非结构化中的计算属性-非结构化整体对象
- 在Ember中,can服务具有计算属性
- Tracker重新计算函数出现异常:无法读取属性'0'的未定义
- 计算数组中多个对象的属性
- Ember.js数组控制器计算属性的复选框
- 在ember.js中访问模型之外的计算属性
- Vue.js在计算属性中设置值
- 如何根据其他属性计算对象文字中的对象属性
- 为特定属性计算JSON对象的长度
- 在JavaScript中作为对象属性计算函数
- Javascript:根据属性计算产品变体的数量
- 使用td属性计算乘积之和
- 对每个调用执行JavaScript属性计算