一步,打开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