如何找到项数组的索引,以查找项是否使用javascript在数组中

时间:2015-06-23 13:56:12

标签: javascript arrays greasemonkey

我是脚本新手,我正在编写一个脚本来查找某个值是否在数组中。

/ HTML /

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
</head>
<body>

<h1>This is a Heading</h1>
<p>account # a</p>

</body>
</html>

/ 的javascript /

var cid = document.getElementsByTagName("P")[0].childNodes[0].nodeValue;

var res = cid.split(" ");

var customerid=res[2];

var abs=['a','b','c'];

var para = document.createElement("P");

var node = document.createTextNode("'"+customerid+"'");

para.appendChild(node);

document.body.appendChild(para); 

var c=document.getElementsByTagName("P")[1].childNodes[0].data;

window.alert(abs.indexOf(c));

警报窗口将索引显示为-1。我的计划是使用以下函数,如果我可以获得上面的代码来获得正确的索引。

function check(){

if (abs.indexOf(c)>=0){

window.alert("item is in array");
}
}

check();

1 个答案:

答案 0 :(得分:1)

当项目不在数组中时,

.indexOf()将返回-1。这是因为如果项目位于数组的第一个索引中,则它位于索引0,因为数组是从零开始的。

对于您的检查功能,如上所述,0表示在第一个位置的数组中找到了该元素。因此,您需要检查.indexOf()是否不返回-1而不是大于0:

function check() {
if (abs.indexOf(c) !== -1){
    window.alert("item is in array");
  }
}

您还可以使用~快捷方式:

function check() {
if (~abs.indexOf(c)){
    window.alert("item is in array");
  }
}