Javascript IN 操作不适用于一项数组

标签 javascript arrays compare

按照下面的代码片段,为什么使用IN操作时,具有一个位置的数组无法正常工作

您可以看到,对于2 项,操作工作正常

  • 为什么会发生这种情况?
  • 解决办法是什么?

// helper function
function showResult(result) {
  document.querySelector('#result').innerHTML += result+'<br/>';
}

var a = ["1"]
var b = "1"

showResult(b in a);
//false

var a = ["1","2"]
var b = "1"

showResult(b in a);
//true
<div id="result"></div>

最佳答案

这不是 in 的用途。 in not 用于在数组中搜索元素。它用于在对象中搜索 key

示例:

var x = {a: 1, b: 2};
console.log('a' in x); // true

您的第二个示例之所以有效,是因为数组(对象)a 包含一个名为 1 的键。

关于Javascript IN 操作不适用于一项数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904568/

相关文章:

javascript - 如何从 Promise 中返回值

javascript - 使用 JQuery 检测对 &lt;input type ="text"> 的所有更改(立即)

javascript - React js如何从组件外部发布axios

java - 动态比较两个 java 对象(数据类型未知)

javascript - 使用 epubjs 和 http ://localhost:3456/fileName/时,react-native android 应用程序中出现空响应错误

java - 平均方法数组提示

java - 赋值运算符遇到问题

Python:增加数组索引

c++ - 在 C++ 中使用 vector 实现简单的优先级队列

java - 比较字节数组