js 数组去重复的方法
数组去重复是js中常用的方法,归纳了四种如下:
1. for + indexOf 去重复
var arr = [3,5,5,4,1,1,2,3,7,2,5];
var target = [];
for(var i=0,len=arr.length;i<len;i++){
if( target.indexOf(arr[i])==-1 ){
target.push(arr[i]);
}
};
console.log(target);
2. forEach + indexOf 去重复
var arr = [3,5,5,4,1,1,2,3,7,2,5];
var target = [];
arr.forEach(function(val){
if(this.indexOf(val)==-1){
this.push(val);
};
},target);
console.log(target);
3.原型对象 prototype + for + indexOf 去重复
Array.prototype.quchong = function(){
var target = [] ;
for(var i=0,len=this.length;i<len;i++){
if(target.indexOf(this[i])==-1){
target.push(this[i]);
}
};
return target;
};
var arr = [3,5,5,4,1,1,2,3,7,2,5];
console.log(arr.quchong());
4.原型对象 prototype + forEach + indexOf 去重复
Array.prototype.quchong = function(){
var target = [];
this.forEach(function(val){
if(this.indexOf(val)==-1){
this.push(val);
}
},target);
return target;
};
var arr = [3,5,5,4,1,1,2,3,7,2,5];
console.log(arr.quchong());
运行结果:

js 数组去重复的方法的更多相关文章
- Js数组去重复取唯一值
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter ...
- js 数组去重复两种方法一看就懂
var arr=[1,1,2,2,3,5,2];function uniqueArr(arr){ var data=[]; for(var i=0;i<arr.length;i++){ if(d ...
- JS 数组去重复值
var arr1 = [90, 91, 92]; var arr2 = [80, 81]; var arr3 = [80, 71, 72, 73]; var arr = arr1.concat(50, ...
- js 数组去重复键
Array.prototype.deleteEle = function() { var newArr = this; for (var i = newArr.length - 1; i >= ...
- js 数组去重复
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法
一,数组去重复 function unique(arr) { // 遍历arr,把元素分别放入tmp数组(不存在才放) var tmp = new Array(); for (var i in arr ...
- 漫谈数组去重复方法(亮点是ES6的新API)
方法1: 利用遍历的思想来进行. <!DOCTYPE html><html lang="en"><head> <meta charset= ...
- js数组去重五种方法
今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...
- 高效率去掉js数组中重复项
Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法: function unique(arr) { var result = [], isRepeated; for (v ...
随机推荐
- 深度揭秘ES6代理Proxy
最近在博客上看到关于ES6代理的文章都是一些关于如何使用Proxy的例子,很少有说明Proxy原理的文章,要知道只有真正掌握了一项技术的原理,才能够写出精妙绝伦的代码,所以我觉得有必要写一篇关于深刻揭 ...
- Java:什么是面向对象?
1.首先我们去区分对象的属性和方法. 一).什么是对象? 比如:所有的东西都可以叫做对象.而对象就是提供给我们研究对象,这就是对象. 二).怎么区分"属性"和"方法&qu ...
- gsoap入门实例
环境VS2008,gsoap_2.8,win7 实例场景:在客户端输入一个字符串,然后传递给服务端计算字符串长度并返回给客户端(附加一些加减乘除法的实现): 将..\gsoap-2.8\gsoap\b ...
- 暑假练习赛 003 A Spider Man
A - Spider Man Crawling in process... Crawling failed Time Limit:2000MS Memory Limit:262144KB ...
- Connect the Cities(prim)用prim都可能超时,交了20几发卡时过的
Connect the Cities Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- 0_Simple__inlinePTX + 0_Simple__inlinePTX_nvrtc
在核函数代码中加入并行线程执行(Parallel Thread eXecution,PTX),通过汇编指令获取得有关线程束的信息.并且在静态代码和运行时编译两种条件下使用. ▶ 源代码:静态使用 #i ...
- Visual Studio 生成DLL文件
新建一个项目,在菜单栏中选择“项目”/“**属性”选项,该页面中将“输出类型”下拉列表中的选项选择为“类库”,然后重新生成一下该项目,或者在“Visual Studio 2008命令提示”中输入以下命 ...
- riot.js教程【四】Mixins、HTML内嵌表达式
前文回顾 riot.js教程[三]访问DOM元素.使用jquery.mount输入参数.riotjs标签的生命周期: riot.js教程[二]组件撰写准则.预处理器.标签样式和装配方法: riot.j ...
- Rsync服务
第1章 Rsync开篇介绍 1.1 rsync的定义 Rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windo ...
- SQL Server 在生产环境中这样写存储过程的坑都避免了吗?
概述 最近因为业务的需求写了一段时间存储过程,发现之前写的存储过程存在一些不严谨的地方,特别是TRY...CATCH中嵌套事务的写法:虽然之前写的并没有错,但是还是埋藏着很大的隐患在里面.希望这篇文章 ...