我有一个对象,其中键是任意值:
console.log( chainResidue.reduce(
(res, obj) => (res[obj.chainId] ? res[obj.chainId].push(obj.residueNumber) : 0, res),
chainIdList.reduce( (obj, id) => (obj[id] = [], obj), {} )));
在某些情况下,如果我做一些数学计算会更清楚,例如:
{
1300: 'banana',
267000: 'cheese',
4000000: 'goat'
}
是否可以在JavaScript中使用键进行数学运算?
我试过了:
12 * 1000 * 1000: 'horse',
但这是一个语法错误。
答案 0 :(得分:9)
如果您的浏览器支持ES6,那么您可以使用“计算密钥”。语法是关闭到您尝试的内容。如果您使用[]
,则应该有效:
{
[12 * 1000 * 1000]: 'horse'
}
Browser Support:Chrome,Firefox 34 +,Safari 7.1 +
答案 1 :(得分:4)
初始化对象时,不能使用math来定义键。但是,您可以使用更长的符号:
obj[(12 * 1000 * 1000)] = 'horse';
编辑:显然,看起来你可以在ES6中使用计算符号,如上所述。
var obj = {
1300: 'banana',
267000: 'cheese',
4000000: 'goat',
[12 * 1000 * 1000]: 'horse'
}
答案 2 :(得分:3)
不确定。如果您使用的是ES6,则可以使用以下表示法。它被称为Computed Property Names
{
1300: 'banana',
267000: 'cheese',
4000000: 'goat',
[12 * 1000 * 1000]: 'horse'
}