详解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正则中的RegExp对象对象
Nov 07 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
Jul 09 Javascript
JS小游戏之极速快跑源码详解
Sep 25 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
javascript实现瀑布流动态加载图片原理
Aug 12 Javascript
详解jQuery简单的表格应用
Dec 16 Javascript
ES6中Class类的静态方法实例小结
Oct 28 Javascript
实例讲解javascript实现异步图片上传方法
Dec 05 Javascript
浅谈React中的元素、组件、实例和节点
Feb 27 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
用POSTMAN发送JSON格式的POST请求示例
Sep 04 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
终于听上了直流胆调频
2021/03/02 无线电
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
微信公众号之主动给用户发送消息功能
2019/06/22 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
jquery访问ashx文件示例代码
2014/08/11 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
2019/10/30 Javascript
js回调函数仿360开机
2019/12/26 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
2020/08/06 Javascript
解决elementui表格操作列自适应列宽
2020/12/28 Javascript
[50:15]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现从url中提取域名的几种方法
2014/09/26 Python
python读取xlsx的方法
2018/12/25 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
python中dict()的高级用法实现
2019/11/13 Python
python的faker库用法
2019/11/28 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
PyCharm GUI界面开发和exe文件生成的实现
2020/03/04 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
CSS3实现的文本3D效果附图
2014/09/03 HTML / CSS
Nike法国官方网站:Nike.com FR
2018/07/22 全球购物
视图的作用
2014/12/19 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
企业职业病防治方案
2014/05/29 职场文书
市场推广策划方案
2014/06/02 职场文书
特种设备安全管理制度
2015/08/06 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python