使用in检查元素是否存在似乎不起作用

时间:2016-06-29 19:16:41

标签: javascript

>>> angular.element($0).scope().sharedData.data.ctxpf[]
["US Indexes", "Equities", "AAPL", "USI ISE Pilot", "Apple All Months"]
>>> "US Indexes" in angular.element($0).scope().sharedData.data.ctxpf["AAPL"]
false
>>> angular.element($0).scope().sharedData.data.ctxpf["AAPL"][0] === "US Indexes"
true

我只是检查字符串是否存在于数组中,并且由于我无法想出的原因 - 即使字符串存在,比较也会失败。有什么理由不行吗?

由于 SUD

编辑:我的大部分失败都归功于尝试使用此关键字以及Python中使用的关键字。

>>> "1" in ["1", "2", "3"]
true 

事实证明,我还没有充分了解Javascript如何收集到我只是陷入了一个坑。

2 个答案:

答案 0 :(得分:1)

  

有什么理由不行吗?

在JavaScript x in y中检查对象x中名为y键。

它本质上是y[x] != undefined(但仍然不完全)。

如果您要在数组中查找值,则应使用indexOf

答案 1 :(得分:1)

angular.element($ 0).scope()。sharedData.data.ctxpf []是[“美国索引”,“股票”,“AAPL”,“USI ISE Pilot”,“Apple All Months”],所以“APPL”只是数组的成员。

您可以检查字符串的存在,如下所示:

  

angular.element($ 0).scope()。sharedData.data.ctxpf []。的indexOf(“美国   索引“)!== -1