const items = ['one'];
const obj = {
'one': 'foobar'
};
console.log(obj[items]);
控制台输出是“foobar”。
为什么/如何[items]
评估为“一”?这会在严格模式下引发错误吗?
最佳答案
您不能拥有数组类型的键。所以你的数组首先转换为字符串,代码相当于
const items = ['one'];
const obj = {
'one': 'foobar'
};
console.log(obj[items.toString()]);
有趣的是,如果您尝试将 Symbol
添加到项目数组中,它将不起作用。
此外,由于 Array.toString 的工作方式,您可以拥有包含多个元素的 items
,并且仍然获得相同的行为:
const items = [1,2];
const obj = {
'1,2': 'foobar'
}
console.log(obj[items]); // also works
关于javascript - 具有 1 个元素的数组将被计算为括号中的该元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46333059/