var arr1 = [10, 8, 5, 6, 96, 54, 52, 10, 8, 5, 6, 5];
1.遍历数组
function DeDuplication(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] == arr[j]) {
i++;
j = i;
}
}
newArr.push(arr[i]);
}
return newArr;
}
console.log(DeDuplication(arr));
2.利用对象属性不能重复的性质
function DeDuplication(arr) {
var obj = {};
var newarr = [];
for (var i = 0; i < arr.length; i++) {
// 将arr中的每一项值作为obj的属性名,属性值随便
obj[arr[i]] = "111";
}
for (key in obj) {
newarr.push(Number(key));
}
return Array.from(newarr);
}
console.log( DeDuplication(arr1));
3. 利用indexOf indexOf()方法是获取指定元素的索引,(相同元素的第一个元素,从前往后的索引,如果有该元素,返回索引值,否则返回-1)
function DeDuplication(arr) {
var newarr = [];
for (var j = 0; j < arr.length; j++) {
// 判断newarr中有没有arr[j]这个元素,如果是-1,证明没有,所以需要向newarr中添加arr[j],如果有,则不等于-1,if里面的语句则不执行
//这句判断换成 if(newarr.lastIndexOf(arr[j]==-1))也可以
if (newarr.indexOf(arr[j]) == -1) {
newarr.push(arr[j])
}
}
return newarr;
}
console.log(DeDuplication(arr1));
4. Set里面的元素不能重复
function DeDuplication(arr) {
return Array.from(new Set(arr));
// 或者可以用es6语法这样写,得到的结果相同 return [...new Set(arr)]
}
console.log(DeDuplication(arr1));