详解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 相关文章推荐
js 判断checkbox是否选中的操作方法
Nov 09 Javascript
js关闭子窗体刷新父窗体实现方法
Dec 04 Javascript
百度地图api应用标注地理位置信息(js版)
Feb 01 Javascript
JavaScript获取Url里的参数
Dec 18 Javascript
基于jQuery实现表格的排序
Dec 02 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
js 性能优化之算法和流程控制
Feb 15 Javascript
react-native DatePicker日期选择组件的实现代码
Sep 12 Javascript
vue中post请求以a=a&amp;b=b 的格式写遇到的问题
Apr 27 Javascript
ES6 Object方法扩展的应用实例分析
Jun 25 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 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
php 文件状态缓存带来的问题
2008/12/14 PHP
PHP6 mysql连接方式说明
2009/02/09 PHP
解析在apache里面给php写虚拟目录的详细方法
2013/06/24 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
JS request函数 用来获取url参数
2010/05/17 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
让axios发送表单请求形式的键值对post数据的实例
2018/08/11 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
npm qs模块使用详解
2020/02/07 Javascript
[01:12:53]完美世界DOTA2联赛PWL S2 Forest vs SZ 第一场 11.25
2020/11/26 DOTA
Python正则表达式学习小例子
2020/03/03 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
app内嵌H5 webview 本地缓存问题的解决
2020/10/19 HTML / CSS
Monnier Freres中文官网:法国领先的奢侈品配饰在线零售商
2017/11/01 全球购物
Tessabit日本:集世界奢侈品和设计师品牌的意大利精品买手店
2020/01/07 全球购物
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
酒店服务与管理毕业生求职信
2013/11/02 职场文书
市场营销专业推荐信
2013/11/03 职场文书
商务日语毕业生自荐信范文
2013/11/14 职场文书
关于旷工的检讨书
2014/02/02 职场文书
施工工地安全标语
2014/06/07 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
优秀共产党员事迹材料
2014/12/18 职场文书
劳动仲裁调解书
2015/05/20 职场文书
经典格言警句:没有热忱,世间便无进步
2019/11/13 职场文书