详解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 相关文章推荐
javascript修改IMG标签的src问题
Mar 28 Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
Jan 19 Javascript
通过隐藏iframe实现无刷新上传文件操作
Mar 16 Javascript
sencha ext js 6 快速入门(必看)
Jun 01 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
May 30 Javascript
关于vue.js组件数据流的问题
Jul 26 Javascript
浅谈vue-router2路由参数注意的问题
Nov 08 Javascript
jQuery中内容过滤器简单用法示例
Mar 31 jQuery
vue将单页面改造成多页面应用的方法
Nov 25 Javascript
简单分析js中的this的原理
Aug 31 Javascript
javascript的setTimeout()使用方法总结
Nov 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
德生PL550的电路分析
2021/03/02 无线电
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
Laravel框架自定义分页样式操作示例
2020/01/26 PHP
如何在PHP中读写文件
2020/09/07 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
javascript实现TreeView 无刷新展开的实例代码
2013/07/13 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
基于node.js实现爬虫的讲解
2019/02/18 Javascript
python爬虫常用的模块分析
2014/08/29 Python
python实现ping的方法
2015/07/06 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
解决Python内层for循环如何break出外层的循环的问题
2019/06/24 Python
pycharm重命名文件的方法步骤
2019/07/29 Python
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
美国精品家居用品网站:US-Mattress
2016/08/24 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
企业年会主持词
2014/03/27 职场文书
简单租房协议书范本
2014/08/20 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
2015年妇幼保健工作总结
2015/05/19 职场文书
Nginx实现负载均衡的项目实践
2022/03/18 Servers
Win11怎么把合并的任务栏分开 Win11任务栏合并分开教程
2022/04/06 数码科技