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


Posted in Javascript onMay 23, 2017

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

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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
Jan 11 Javascript
JS在IE下缺少标识符的错误
Jul 23 Javascript
jQuery实现的一个自定义Placeholder属性插件
Aug 11 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
有关easyui-layout中的收缩层无法显示标题的解决办法
May 10 Javascript
JS随机打乱数组的方法小结
Jun 22 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
Vue监听滚动实现锚点定位(双向)示例
Nov 13 Javascript
javaScript 实现重复输出给定的字符串的常用方法小结
Feb 20 Javascript
Vue实现鼠标经过文字显示悬浮框效果的示例代码
Oct 14 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 Javascript
微信小程序学习之自定义滚动弹窗
Dec 20 Javascript
强大的 Angular 表单验证功能详细介绍
May 23 #Javascript
微信小程序 侧滑删除(左滑删除)
May 23 #Javascript
最常用的jQuery表单验证(简单)
May 23 #jQuery
jquery实现简单实用的轮播器
May 23 #jQuery
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 #Javascript
Bootstrap多级菜单的实现代码
May 23 #Javascript
微信小程序获取用户openId的实现方法
May 23 #Javascript
You might like
收音机另类DIY - 纸巾盒做外壳
2021/03/02 无线电
php中取得文件的后缀名?
2012/02/20 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php最简单的删除目录与文件实现方法
2014/11/28 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
php链式操作的实现方式分析
2019/08/12 PHP
js substr、substring和slice使用说明小记
2011/09/15 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
简单的js表单验证函数
2013/10/28 Javascript
js 通过html()及text()方法获取并设置p标签的显示值
2014/05/14 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
JavaScript使用encodeURI()和decodeURI()获取字符串值的方法
2015/08/04 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
JS自定义函数对web前端上传的文件进行类型大小判断
2016/10/19 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
python使用正则表达式提取网页URL的方法
2015/05/26 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
Python2与Python3的区别实例分析
2019/04/11 Python
Django对models里的objects的使用详解
2019/08/17 Python
PHP统计代码行数的小代码
2019/09/19 Python
wxPython实现画图板
2020/08/27 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
Shopty西班牙:缝纫机在线销售
2018/01/26 全球购物
光荣入党自我鉴定
2014/01/22 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
务虚会发言材料
2014/12/25 职场文书
如何写辞职书
2015/02/26 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
有关骆驼祥子的读书笔记
2015/06/26 职场文书