为什么不能将表达式传递给Javascript哈希键?
fgetcsv()
//未定义
答案 0 :(得分:3)
在这里,您的代码将首先评估('foo' || 'one') // which is foo
,然后尝试访问未定义的o
属性。
您可能想做的是:
o['foo'] || o['one']
答案 1 :(得分:0)
在您的代码中始终返回null,因为始终查找'foo',因为它是一个多位字符串,被认为是true,因此它将在对象中查找其第一个位置,并且将返回undefined。
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'始终为true,因为您未在自己的内部指示该外观对象。