详解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对象弹出一个层
Mar 26 Javascript
用Jquery实现可编辑表格并用AJAX提交到服务器修改数据
Dec 27 Javascript
jquery中获取select选中值的代码
Jun 27 Javascript
Extjs 继承Ext.data.Store不起作用原因分析及解决
Apr 15 Javascript
JavaScript简单实现鼠标拖动选择功能
Mar 06 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
Uploadify上传文件方法
Mar 16 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 Javascript
vue-cli项目中使用Mockjs详解
May 14 Javascript
layDate插件设置开始和结束时间
Nov 15 Javascript
一文搞懂ES6中的Map和Set
May 20 Javascript
javascript的hashCode函数实现代码小结
Aug 11 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
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
node+express框架中连接使用mysql(经验总结)
2018/11/10 Javascript
JavaScript高阶教程之“==”隐藏下的类型转换
2019/04/11 Javascript
javascript实现前端分页功能
2020/11/26 Javascript
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
Python全栈之列表数据类型详解
2019/10/01 Python
python小白切忌乱用表达式
2020/05/29 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
python 中 .py文件 转 .pyd文件的操作
2021/03/04 Python
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
简历的自荐信
2013/12/19 职场文书
十八届三中全会报告学习材料
2014/02/17 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
2014年九一八事变演讲稿
2014/09/14 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
党员评议自我评价
2015/03/03 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
python双向链表实例详解
2022/05/25 Python