Javascript IN操作不能使用一个项目数组

Alv*_*oao 0 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
Run Code Online (Sandbox Code Playgroud)
<div id="result"></div>
Run Code Online (Sandbox Code Playgroud)

Roc*_*mat 5

这不是in为了什么. in是不用于搜索数组的元素.它用于搜索对象以获取密钥.

例:

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

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

  • @AlvaroJoao`myArray.indexOf(value)> -1`会做你想要的 (2认同)