js 数组去重的一些方法总结
来源:互联网 发布:nginx代理apache 400 编辑:程序博客网 时间:2024/05/16 01:48
数组去重是许多公司招聘前端职位的必考内容,把自己学习到的一些方法总结一下做一个巩固和复习。
1.第一种方法
function sift(array){ array.sort(); for (var i=0;i<array.length;i++) { if(array[i]==array[i+1]){ array.splice(i,1) i--; } } return array; }
通过sort方法对数组进行排序,把相同的项放到相邻的位置,循环排序后的数组,判断如果当前项与后一项相等,则在数组中删除当前项,当前循环值减一后继续循环。最后返回删除后的数组。
2.第二种方法
function sift(array){ var leng,newarray; leng= array.length; newarray=[]; for(var i=0;i<leng;i++){ for(var j=i+1;j<leng;j++){ if(array[i]==array[j]){ i++; } } newarray.push(array[i]); } return newarray;}
通过循环数组把当前项和后面的每一项做比较,如果相等则跳过。最后返回比较完后的新数组。
3.第三种方法
function sift(array){ var obj,newarray; obj={}; newarray=[]; for(var i=0;i<array.length;i++){ if(!obj[array[i]]){ obj[array[i]]=true; newarray.push(array[i]); } } return newarray; }
创建一个空对象,循环测试数组,如果对象里面没有当前数组项的属性则把当前数组项添加新的数组里面,最后返回新数组。此方只循环了一次数组,因此执行速度比较快,但却多创建了一个对象,因此内存占用相对较大。典型的空间换时间。
4.第四种方法
function sift(array){ var leng,newarray; leng = array.length; newarray=[]; for(var i=0;i<leng;i++){ if(newarray.indexOf(array[i])==-1){ newarray.push(array[i]); } } return newarray;}
创建一个新数组,循环测试数组,通过indexOf()方法判断当前项在新数组中是否出现过,没有则添加当前项到新数组中,最后返回新数组。
0 0
- js 数组去重的一些方法总结
- JS-数组去重的方法总结
- js数组去重的方法总结
- JS中的数组去重方法总结
- JS中的数组去重方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的常用方法总结
- js数组去重的几种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的几种方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的三种常用方法总结
- js数组去重的最快方法
- js数组去重的四个方法
- js数组去重的方法
- 344. Reverse String
- TensorFlow 制作自己的TFRecord数据集
- hibernate的ID生成器
- RabbitMq学习笔记(四)—— 消息路由(Routing)
- Android实现zip下载并解压
- js 数组去重的一些方法总结
- Openstack Ocata Nova [placement]
- vi编辑器
- java中有关package的作用
- NUMA、SMP架构下的CPU性能调优:姻亲关系、进程绑定与中断
- [编程题]在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向比较
- PreparedStatement进行数据库增删改查
- ionic2 一.基础 (3)常用命令2 自动生成器
- NOIP 2010 普及组 复赛 two 数字统计