详解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 动态创建VML的方法
Oct 14 Javascript
分享两个手机访问pc网站自动跳转手机端网站代码
Dec 24 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
Oct 09 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
Jul 27 Javascript
微信小程序 开发指南详解
Sep 27 Javascript
JavaScript使用readAsDataURL读取图像文件
May 10 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
微信小程序组件之srcoll-view的详解
Oct 19 Javascript
vue init webpack 建vue项目报错的解决方法
Sep 29 Javascript
解决layer弹出层msg的文字不显示的问题
Sep 11 Javascript
微信小程序拖拽排序列表的示例代码
Jul 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
Express.JS使用详解
2014/07/17 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
div实现自适应高度的textarea实现angular双向绑定
2017/01/08 Javascript
微信小程序通过api接口将json数据展现到小程序示例
2017/01/20 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
JS扁平化输出数组的2种方法解析
2019/09/17 Javascript
python PyTorch参数初始化和Finetune
2018/02/11 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
用Python shell简化开发
2018/08/08 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
java判断三位数的实例讲解
2019/06/10 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
韩国三星旗下的一家超市连锁店:Home Plus
2016/07/30 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
生物技术研究生自荐信
2013/11/12 职场文书
社区学习十八大感想
2014/01/22 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
优秀班主任申报材料
2014/12/16 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
cf战队宣传语
2015/07/13 职场文书