js数组去重方法集合
2024-09-05 10:05:51
//第一种方法,新建一个空数组,将原来的数组循环逐个与新数组的成员做比较,如果新数组没有该元素就push进来
var arr = ['a', 1, 1, 1, 2, 4, 4, 'b', 'c', 'a'];
var newArr = [];
var len = arr.length;
for (i = 0; i < len; i++) {
var flag = false;
for (var member of newArr) {
if (member === arr[i]) {
flag = true;
break
}
}
if (!flag) {
newArr.push(arr[i])
}
}
console.log('1111111111111111', newArr)
//第二种,两层循环,相互比较,如果相同就删除
var arr2 = [1, 2, 3, 'a', 'b', 3, 2, 'c', 'a'];
var len2 = arr2.length;
while (len2-- > 0) {
for (let i = 0; i < len2; i++) {
if(arr2[i]==arr2[len2]){
arr2.splice(i,1)
break
} }
}
console.log('2222222222222',arr2)
//3.借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等
var arr = [1,23,1,1,1,3,23,5,6,7,9,9,8,5];
function rep(arr) {
for (var i = 0; i < arr.length; i++) {
if (arr.indexOf(arr[i]) != i) {
arr.splice(i,1);//删除数组元素后数组长度减1后面的元素前移
i--;//数组下标回退
}
}
return arr;
}
var a1 = rep(arr);
console.log(a1);
//4.借助indexOf()和一个空数组
var arr3=['f','c',1,2,3,4,4,4,'v','f'];
var newArr3=[];
for(i=0;i<arr3.length;i++){
if(newArr3.indexOf(arr3[i])<0){
newArr3.push(arr3[i])
}
}
console.log('33333333333333',newArr3)
//5.filter方法
var arr4 = [1, 2, 3, 1,2,5,6]
var arr4temp=arr4.filter(function(ele,index,self){
return self.indexOf(ele)===index;
})
console.log(arr4temp)
最新文章
- java实现ftp文件的上传与下载
- XMPP 和 OpenFire
- 安全关闭多Activity的Application
- iOS UITableview
- Android ActionBarDrawerToggle、DrawerLayout、ActionBar 结合
- BZOJ 2818
- 指针二次释放(_BLOCK_TYPE_IS_VALID)
- Catch That Cow 分类: POJ 2015-06-29 19:06 10人阅读 评论(0) 收藏
- c# 生成json数据包
- 20 Free Open Source Web Media Player Apps
- iOS8中的UIAlertController
- Python设计模式——设计原则
- UVA 11090 - Going in Cycle!!(Bellman-Ford)
- 原型那些事 - JavaScript深入浅出(三)
- LINQ学习系列-----2.2 迭代器
- LeetCode(79): 单词搜索
- xsyProblem A: 密集子图(graph)
- Memcache 优化建议
- thinkphp C函数的实现原理
- html5兼容处理&;sublime text3配置html5环境