javascript中知道一个数组中的一个元素的值,如何获取数组下标

JavaScript019

javascript中知道一个数组中的一个元素的值,如何获取数组下标,第1张

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

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

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

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

第五步,再次预览该静态页面,发现打印的结果为“-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)

}

}

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

是获得索引么?不考虑兼容问题,用一下document.getElementsByClassName

var child = document.getElementsByClassName("child")

for (var i = 0 i < child.length i++) {

    var a = child[i]

    a.index = i//给每个className为child的元素添加index属性

    a.onclick = function () {

        alert(this.index)

    }

}

这样你每次点击就能获得你点击的元素的index