详解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 相关文章推荐
Jquery 动态添加按钮实现代码
May 06 Javascript
js禁止回车提交表单的示例代码
Dec 23 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
JavaScript头像上传插件源码分享
Mar 29 Javascript
Javascript 制作图形验证码实例详解
Dec 22 Javascript
JS+CSS实现下拉刷新/上拉加载插件
Mar 31 Javascript
jQuery回调方法使用示例
Jun 26 jQuery
微信小程序报错:this.setData is not a function的解决办法
Sep 27 Javascript
解决vue-router中的query动态传参问题
Mar 20 Javascript
jQuery解析json格式数据示例
Sep 01 jQuery
详解多页应用 Webpack4 配置优化与踩坑记录
Oct 16 Javascript
JS实现手风琴特效
Nov 08 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函数method_exists()与is_callable()的区别
2013/06/21 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
JavaScript Event学习第十一章 按键的检测
2010/02/10 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
javascript中传统事件与现代事件
2015/06/23 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
Bootstrap3 Grid system原理及应用详解
2016/09/30 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
JavaScript中this的全面解析及常见实例
2019/05/14 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
vue滚动固定顶部及修改样式的实例代码
2019/05/30 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
[01:11:11]Alliance vs RNG 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
python安装以及IDE的配置教程
2015/04/29 Python
python多线程分块读取文件
2019/08/29 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
美国轮胎网站:Priority Tire
2018/11/28 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
财务管理职业生涯规划书
2014/02/26 职场文书
保护环境倡议书100字
2014/05/19 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
特岗教师个人总结
2015/02/10 职场文书
护士自荐信范文
2015/03/25 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python