详解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代码
Aug 29 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
Oct 23 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
Angular在一个页面中使用两个ng-app的方法
Feb 20 Javascript
Angular组件化管理实现方法分析
Mar 17 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
May 28 Javascript
JavaScript数组push方法使用注意事项
Oct 30 Javascript
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
Feb 26 Javascript
浅谈React组件之性能优化
Mar 02 Javascript
基于datepicker定义自己的angular时间组件的示例
Mar 14 Javascript
原生js实现瀑布流效果
Mar 09 Javascript
angular组件间通讯的实现方法示例
May 07 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
《魔兽争霸3:重制版》翻车了?你想要的我们都没有
2019/11/07 魔兽争霸
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
PHP中的Memcache详解
2014/04/05 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP针对多用户实现更换头像功能
2016/09/04 PHP
如何将网页表格内容导入excel
2014/02/18 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
javascript 中的try catch应用总结
2017/04/01 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
2017/08/21 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
JS如何监听div的resize事件详解
2020/12/03 Javascript
python将文本分每两行一组并保存到文件
2018/03/19 Python
详解python单元测试框架unittest
2018/07/02 Python
Django网络框架之HelloDjango项目创建教程
2019/06/06 Python
在python中画正态分布图像的实例
2019/07/08 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
python 中的[:-1]和[::-1]的具体使用
2020/02/13 Python
python GUI计算器的实现
2020/10/09 Python
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
表彰大会策划方案
2014/05/13 职场文书
学校节能减排方案
2014/06/13 职场文书
司法助理专业自荐书
2014/06/13 职场文书
小学庆六一活动总结
2014/08/28 职场文书
收费员岗位职责
2015/02/14 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
电力工程合作意向书
2015/05/11 职场文书
Java版 简易五子棋小游戏
2022/05/04 Java/Android