为什么您不能将表达式传递给JavaScript Hash键?
let o = {
one: 12,
two: 23,
three: 90
}
console.log(
o['foo' || 'one']
)
//未定义
在此处,您的代码将首先评估('foo' || 'one') // which is foo
,然后尝试访问未定义的o
的属性。
您可能想做的是:
o['foo'] || o['one']
在您的代码中始终返回null,因为始终查找'foo',因为它是一个具有多个位的字符串,因此被认为是正确的,因此它将在对象和对象中寻找其第一个位置它将返回未定义的。
tienes dos formas de como hacer eso y una es la siguiente:
Alberto Rivera向您展示了此表格(第一个评论(
o['foo'] || o['one']
第二个选项是有一种方法来验证对象中的索引存在并返回第一个位置作为此示例:
let o = {
one: 12,
two: 23,
three: 90
}
let validate = a => a.filter(v => v in o)[0]
console.log(
o[validate(['foo', 'one'])]
);
在最后一个情况下,您将始终返回对象中发现的第一个值,但总而言之,您的操作方式是不正确的,因为" foo"始终会给予真实对象。