一.indexOf
思路:从左到右找到第一个对应得到索引,如果不存在 就返回-1
var arr1 = [1,2,3,4,4,5,5];
var arr2 = []
for(var i = 0;i<arr1.length;i++){
if(arr2.indexOf(arr1[i]) == -1){
arr2.push(arr1[i]);
}
}
console.log(arr2);
同理可用 lastIndexOf
思路:从右到左找到第一个对应得到索引,如果不存在 就返回-1
var arr1 = [1,2,3,4,4,5,5];
var arr2 = []
for(var i = 0;i<arr1.length;i++){
if(arr2.lastIndexOf(arr1[i]) == -1){
arr2.push(arr1[i]);
}
}
console.log(arr2);
二.通过 lastIndexOf 和 IndexOf 的返回值判断
思路:遍历数组,拿到每一项,如果 lastIndexOf 和 IndexOf 返回值一样的话,则不重复,
加入新数组
var arr1 = [1,2,3,4,4,5,5];
var arr2 = []
for(var i = 0;i<arr1.length;i++){
if(arr1.indexOf(arr1[i]) == arr1.lastIndexOf(arr1[i])){
arr2.push(arr1[i])
}else if (arr2.indexOf(arr1[i]) == -1){
arr2.push(arr1[i])
}
}
console.log(arr2);
三.考虑 输入和输出
思路:定义一个状态,判断是否存在
function noRepeat(array){
var newArr = [];
for(var i=0;i<array.length; i++){
var flag = true;
for(var j = i + 1;j<array.length;j++){
if(array[i] == array[j]){
flag = false;
continue;
}
}
if(flag){
newArr.push(array[i]);
}
}
}