当前位置: 首页 » 产品 » 农牧养殖 » 正文

JavaScript数组过滤相同元素的5种方法

放大字体  缩小字体 发布日期: 2024-12-24 08:15   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:23
核心提示:方法一:比较内层循环变量的值.var arr=[1, 2, 3, 1, 3, 4, 5, 5];var resultArr=[];for (i=0; iarr.length; i++) {for (j=0; jre

方法一:比较内层循环变量的值.

var arr=[1, 2, 3, 1, 3, 4, 5, 5]; var resultArr=[]; for (i=0; i < arr.length; i++) { for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { break; } } if (j==resultArr.length) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr); //1,2,3,4,5

方法二:计数法.

var arr=[1, 2, 3, 1, 3, 4, 5, 5]; var count; var resultArr=[]; for (i=0; i < arr.length; i++) { count=0; for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { count++; break; } } if (count==0) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr); //1,2,3,4,5

方法三:flag标志法(也叫假设成立法)

var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr=[]; //[1,2,3] var flag; for (var i=0; i < arr.length; i++) { flag=true; for (j=0; j < resultArr.length; j++) { if (resultArr[j]==arr[i]) { flag=false; break; } } if (flag) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr);//1,2,3,4,5

方法四:使用sort()方法排序后比较

var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr=[]; arr.sort(function (a, b) { return a - b; }); //这个时候arr变成了[1, 1, 2, 2, 3, 3, 4, 5, 5] for (i=0; i < arr.length; i++) { if (arr[i] !=arr[i + 1]) { resultArr[resultArr.length]=arr[i]; } } console.log(resultArr);

方法五:使用filter()方法筛选掉重复的数组

var arr=[1, 2, 3, 1, 2, 3, 4, 5, 5]; var resultArr; resultArr=arr.filter(function (item, index, self) { return self.indexOf(item)==index; }); console.log(resultArr);

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站