需求:获取数组中相同元素的下标。
思路:循环嵌套遍历两次数组,分别对比值是否相等 arr[i] = arr[j],如果相等,记录下来 index,同时标记 haveSame 。当 haveSame 为 true 时,将重复元素存储在 list 中,同时输出数组下标为 index 的元素相同。
注意:这里需要一个重复元素的数组与原数组的对比,判断某元素是否已经对比了。
function searchKeys(arr){
var str = "";
var list = [];
for (var i = 0; i < arr.length; i++) {
var hasRead = false;
for ( var k = 0; k < list.length; k++) {
if (list[k] == arr[i]){
hasRead = true;
}
}
if(!hasRead){
var _index = i, haveSame = false;
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
_index += "," + j;
haveSame = true;
}
}
if (haveSame) {
list.push(arr[i]);
str += "数组下标为"+_index+",相同值为"+arr[i]+ "\n";
}
}
}
return str
}
var arr = ['11', '11', '111', '4', '5', '6', '6', '7','7', '8', '1', '1', '1'];
console.log(searchKeys(arr))