详解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 相关文章推荐
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
Jul 29 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
Oct 04 Javascript
Jquery 复选框取值兼容FF和IE8(测试有效)
Oct 29 Javascript
Js参数值中含有单引号或双引号问题的解决方法
Nov 06 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
浅谈Javascript中的Function与Object
Jan 26 Javascript
JavaScript中join()方法的使用简介
Jun 09 Javascript
JS+CSS实现简易的滑动门效果代码
Sep 24 Javascript
jQuery.uploadify文件上传组件实例讲解
Sep 23 Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 Javascript
浅谈React Native 中组件的生命周期
Sep 08 Javascript
vue实现键盘输入支付密码功能
Aug 18 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
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php基于curl扩展制作跨平台的restfule 接口
2015/05/11 PHP
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
javascript带回调函数的异步脚本载入方法实例分析
2015/07/02 Javascript
Angularjs使用ng-repeat中$even和$odd属性的注意事项
2016/12/31 Javascript
JavaScript &amp; jQuery完美判断图片是否加载完毕
2017/01/08 Javascript
Bootstrap 下拉多选框插件Bootstrap Multiselect
2017/01/22 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
Vue如何提升首屏加载速度实例解析
2020/06/25 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
python中List的sort方法指南
2014/09/01 Python
Python 常用string函数详解
2016/05/30 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
2019/06/03 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
pytorch 使用加载训练好的模型做inference
2020/02/20 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
python mysql中in参数化说明
2020/06/05 Python
法国足球商店:Footcenter
2019/07/06 全球购物
单位人事专员介绍信
2014/01/11 职场文书
办公室文员工作职责
2014/01/31 职场文书
护士在校生自荐信
2014/02/01 职场文书
服装设计师职业生涯规划范文
2014/02/28 职场文书
公务员个人总结
2015/02/12 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL