js数组去重
2019-07-01 本文已影响0人
好名字都让你们用了
主要介绍两种目前我认为比较简单的去重方法,封装了两个函数.
学习es6 发现有更简单的方法,更新一下。
第一种
// 1:对需要去重的数组循环遍历
// 2:创建一个空的数组
// 3;判断新创建的数组中是否有遍历的数据
// 没有的话 将数据push进这个数组中
function num(arr) {
var sum = [];
for (i = 0; i < arr.length; i++) {
if (sum.indexOf(arr[i]) == -1) {
sum.push(arr[i]);
}
}
return sum;
}
var arry = [1, 3, 4, 545, 65, 65, 4, 5, 35, 545, 4, 545, 45, 46, 443, "a", "d", "a", "d"];
console.log(num(arry));
第二种
// 首先对数组进行从小到大排序,把相邻相同的删除一个
function num1(arr1) {
//创建一个空的数组来接受筛选后的数据
var sum2=[];
// 给数组进行排序(使用的是sort()的数组排序的方法)
var sum1 = arr1.sort();
for(var i=0;i<sum1.length;i++){
if(sum1[i]!=sum1[i+1]){
sum2.push(sum1[i])
}
}
return sum2;
}
var arry = [1, 3, 4, 545, 65, 65, 4, 5, 35, 545, 4, 545, 45, 46, 443, "a", "d", "a", "d"];
console.log(num1(arry))
es6(IE目前不支持)
var arr=[2,5,4,8,7,6,9,3,2,1,7,5,5];
//set 自动去重
var set=new Set(arr);
//sort是数组的排序方法
var arr1=[...set].sort();
console.log(arr1)//[[1, 2, 3, 4, 5, 6, 7, 8, 9]