详解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动态添加onload、onresize、onscroll事件(另类方法)
Dec 26 Javascript
javascript搜索框点击文字消失失焦时文本出现
Sep 18 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
ES6中Math对象的部分扩展
Feb 20 Javascript
详解使用fetch发送post请求时的参数处理
Apr 05 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
AngularJS中controller控制器继承的使用方法
Nov 03 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
Jan 10 Javascript
jQuery length 和 size()区别总结
Apr 26 jQuery
JS数组属性去重并校验重复数据
Jan 10 Javascript
详解Vue中的Props与Data细微差别
Mar 02 Javascript
编写v-for循环的技巧汇总
Dec 01 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实现多图片上传类实例
2014/07/26 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP递归实现快速排序的方法示例
2017/12/18 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
PHP创建XML接口示例
2019/07/04 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
JavaScript编程中容易出BUG的几点小知识
2015/01/31 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
学习JavaScript设计模式(多态)
2015/11/25 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
Jquery Easyui菜单组件Menu使用详解(15)
2016/12/18 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
[04:03]辉夜杯主赛事 12月25日RECAP精彩回顾
2015/12/26 DOTA
python的多重继承的理解
2017/08/06 Python
pthon贪吃蛇游戏详细代码
2019/01/27 Python
python os模块常用的29种方法使用详解
2020/06/02 Python
使用python实现名片管理系统
2020/06/18 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
心理健康课教学反思
2014/02/13 职场文书
政工例会汇报材料
2014/08/26 职场文书
地道战观后感300字
2015/06/04 职场文书
2016应届毕业生实习心得体会
2015/10/09 职场文书
2016大学军训通讯稿
2015/11/25 职场文书
六年级作文之关于梦
2019/10/22 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS