【程序猿技术】Js中去除数组中重复元素的4种方法
来源:互联网 发布:jsp中注释java代码 编辑:程序博客网 时间:2024/06/05 16:59
小编技术很烂前几天去面试前端遇到的问题
技术问小编如何去除数组中的重复数字。小编真的是小白,没有回答出来,当然小编被Pass了。[哭ing],于是小编现在开始勤奋的学习。
回家之后小编总结了4中去除数组重复元素的方法,技术有限可能会有错误。
第一种方法
Array.prototype.method1 = function(){ var arr[]; //定义一个临时数组 for(var i = 0; i < this.length; i++){ //循环遍历当前数组 //判断当前数组下标为i的元素是否已经保存到临时数组 //如果已保存,则跳过,否则将此元素保存到临时数组中 if(arr1.indexOf(this[i]) == -1){ arr.push(this[i]); } } return arr; }
第二种方法
Array.prototype.method3 = function(){ //直接定义结果数组 var arr[this[0]]; for(var i = 1; i < this.length; i++){ //从数组第二项开始循环遍历此数组 //对元素进行判断: //如果数组当前元素在此数组中第一次出现的位置不是i //那么我们可以判断第i项元素是重复的,否则直接存入结果数组 if(this.indexOf(this[i]) == i){ arr.push(this[i]); } } return arr; }
第三种方法
Array.prototype.method4 = function(){ //将数组进行排序 this.sort(); //定义结果数组 var arr[this[0]]; for(var i = 1; i < this.length; i++){ //从数组第二项开始循环遍历数组 //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组 if(this[i] !== arr[arr.length - 1]){ arr.push(this[i]); } } return arr; }
第四种方法
Array.prototype.method2 = function(){ var h{}; //定义一个hash表 var arr[]; //定义一个临时数组 for(var i = 0; i < this.length; i++){ //循环遍历当前数组 //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组 if(!h[this[i]]){ //存入hash表 h[this[i]] = true; //把当前数组元素存入到临时数组中 arr.push(this[i]); } } return arr; }
方法1和方法3都用到了数组的indexOf()方法,此方法主要用来查找元素在数组中第一次出现的位置。比较浪费资源和时间。
方法2使用的是hash表,把已经出现过的元素通过下标形式写入到一个object内,下标的引用要比用数组indexOf()方法搜索节省时间。
阅读全文
0 0
- 【程序猿技术】Js中去除数组中重复元素的4种方法
- Js中去除数组中重复元素的4种方法
- Js中去除数组中重复元素的4种方法
- JS写一个去除数组中重复元素的程序
- js去除数组中重复元素的方法
- JS 去除数组中重复的元素
- js去除数组中重复的元素
- iOS去除数组中重复元素的几种方法
- js去除数组的重复元素和去除数组中相邻的重复元素
- js去除数组中重复元素
- 去除数组中重复的元素
- 去除数组中重复的元素
- 去除数组中重复的元素
- 去除数组中重复的元素
- 去除数组中重复的元素
- 去除数组中重复的元素,高效率
- java 去除数组中重复的元素
- java 去除数组中重复的元素
- 基于Threejs的web 3D开发入门
- 二叉树的前序,中序,后序遍历
- js框架封装(二)——选择器框架
- 你用过java.text.DecimalFormat吗?
- c语言字符串排序问题
- 【程序猿技术】Js中去除数组中重复元素的4种方法
- JAVA课程学习二:99乘法表的编写
- Regular Expression Matching:仿正则匹配字符串
- max_allowed_packet' bytes报错
- Linux 下安装MySQL 5.6(RPM方式)
- AJAX
- LightOj-1030-Discovering Gold
- codevs 1205单词翻转(stl运用)
- [JAVA技术] Java中常用的代码汇总