方法一(不推荐)
- 1.创建一个新数组,将原数组中的第一项存在新数组中
- 2.在旧数组中取出一个数,与新数组中的每一项进行对比,如果新数组中没有,就存入数组中
- 3.不断循环步骤2
<script>
const list =[3,3,4,5,6,3,5,6,9,5,6,7];
const unique = (arr) => {
var newarr =[arr[0]];
arr.forEach((v, i) => {
let flag= false;
for (var j =0; j<newarr.length;j++) {
if (arr[i] == newarr[j]) {
flag =true;
break;
}
}
if (!flag) {
newarr.push(arr[i]);
}
})
return newarr;
}
console.log(unique(list));
</script>
方法二
- 1.创建一个新数组,将原数组中的第一项存在新数组中
- 2.先对原来的数组进行排序,--用sort()方法
- 3.将新数组的最后一项,与原来的数组进行对比,如果不相等,就将该数据添加到新数组中
<script>
const list =[3,3,4,5,6,3,5,6,9,5,6,7];
const unique = (arr) => {
arr = arr.sort();
let newarr =[arr[0]];
arr.forEach((v, i) => {
if (arr[i] != newarr[newarr.length-1]) {
newarr.push(arr[i]);
}
})
return newarr;
}
console.log(unique(list));
</script>
方法三
<script>
const list =[3,3,4,5,6,3,5,6,9,5,6,7];
const unique = (arr) => {
let newarr = [arr[0]];
arr.forEach((v, i) => {
if (newarr.indexOf(arr[i]) == -1) {
newarr.push(arr[i]);
}
})
return newarr;
}
console.log(unique(list));
</script>
方法四
方法五(推荐,性能最好)
<script>
const list =[3,3,4,5,6,3,5,6,9,5,6,7];
const unique = (arr) => {
var newarr =[];
var obj = {};
arr.forEach((v, i) => {
if (!obj[arr[i]]) {
newarr.push(arr[i]);
obj[arr[i]]=1;
}
})
return newarr;
}
console.log(unique(list));
</script>
方法六(推荐,代码最少)
<script>
const list =[3,3,4,5,6,3,5,6,9,5,6,7];
const unique = (arr) => {
return [...new Set(arr)];
// return Array.from(new Set(arr))
}
console.log(unique(list));
</script>