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

JavaScript034

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)

}

}

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

直接给一个新的数组里面,利用es6的延展运算符

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。item是当前元素的值,index是当前元素的索引值。indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。利用indexOf() 查询到数组的下标,看是否等于当前的下标,相等的话就返回,否则不返回值。

5、借助新数组 通过 indexOf 方法判断当前元素在数组中的索引,如果与循环的下标相等则添加到新数组中

6、利用双重for循环

7、利用includes实现数组去重

以上就是比较常用的七种方法了,有不懂的留言吧。