js中如何取得数组中相同元素的下标

JavaScript05

js中如何取得数组中相同元素的下标,第1张

function searchKeys(needle, haystack)

{

    var result = []

    for (i in haystack)

{

if (haystack[i] == needle)

{

    result.push(i)

}

}

    return result

}

var array = [1,2,1,3,1,4,1,5,1,1]

var val = 1

var result = searchKeys(val, array)

alert(result)

这里写了一个方法,第一个参数是所要求果的值,第二个参数是对应的数组,函数返回的结果就是在这个数组中有相同元素的坐标。

上面是已知元素进行查找,下面这个是对数组所有元素进行查找

var arr = ['1', '2', '3', '4', '5', '6', '6', '7', '8', '1', '1', '1']

var list = []

for (var i = 0 i < arr.length i++)

{

var hasRead = false

for (var k = 0 k < list.length k++)

{

if (i == list[k])

{

hasRead = true

}

}

if (hasRead) { break}

var _index = i, haveSame = false

for (var j = i + 1 j < arr.length j++)

{

if (arr[i] ==arr[j])

{

list.push(j)

_index += "," + j

haveSame = true

}

}

if (haveSame)

{

alert("数组中值为"+arr[i]+"相同元素的下标为"+_index)

}

}

这个是对所有的数组元素遍历,查出所有的相同的元素以及下标

一步,打开eclipse开发工具,新建静态页面lastIndexOf.html,如下图所示:

第二步,在<script></script>内编写代码,声明两个变量E1和E2,如下图所示:

第三步,预览该静态页面,打开浏览器控制台,查看打印结果,如下图所示:

第四步,再次修改代码,lastIndexOf方法内第一个参数设置为数组中没有的元素,如下图所示:

第五步,再次预览该静态页面,发现打印的结果为“-1”,说明没有查找到该元素,如下图所示:

第六步,再次修改代码,添加第二个参数,从倒数第二个开始查找,如下图所示:

var a = [1,2,3,4,5,6,7,8,9]

for(var i = 0i<a.lengthi++){

    console.log(i)

}

这个i就是数组的下标