详解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 相关文章推荐
(function(){})()的用法与优点
Mar 11 Javascript
使用apply方法处理数组的三个技巧[译]
Sep 20 Javascript
jQuery实用基础超详细介绍
Apr 11 Javascript
一个JS的日期格式化算法示例
Jul 31 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
javascript冒泡排序小结
Apr 10 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
Feb 19 Javascript
AngularJs点击状态值改变背景色的实例
Dec 18 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
Jul 18 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
Aug 07 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
强大的 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 PDO的一些认识小结
2015/01/23 PHP
PHP读取汉字的点阵数据
2015/06/22 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
PHP 实现的将图片转换为TXT
2015/10/21 PHP
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
PHP7新功能总结
2019/04/14 PHP
javascript 四则运算精度修正函数代码
2010/05/31 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
2014/12/20 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
超赞的动手创建JavaScript框架的详细教程
2015/06/30 Javascript
jquery解析XML及获取XML节点名称的实现代码
2016/05/18 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
用headjs来管理和加载js 提高网站加载速度
2016/11/29 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
原生JS运动实现轮播图
2021/01/02 Javascript
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python类的动态修改的实例方法
2017/03/24 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
python+influxdb+shell编写区域网络状况表
2018/07/27 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
将tensorflow.Variable中的某些元素取出组成一个新的矩阵示例
2020/01/04 Python
CSMA/CD介质访问控制协议
2015/11/17 面试题
好家长事迹材料
2014/01/23 职场文书
网络管理专业求职信
2014/03/15 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
小学运动会演讲稿
2014/08/25 职场文书
转让协议书
2015/01/27 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers