为什么不能将条件表达式传递给Javascript哈希键?

时间:2019-05-01 20:29:37

标签: javascript

为什么不能将表达式传递给Javascript哈希键?

fgetcsv()

//未定义

2 个答案:

答案 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,因为您未在自己的内部指示该外观对象。