利用JS对象的特性去除数组中的重复项
2016-10-08 11:26
351 查看
数组去重的方法有很多,不同的方法的效率也不相同。本文介绍了另一种数组去重的方法:根据JS对象的特性去除数组中重复项的方法。
把要去重的数组转换成一个js的对象并返回。转换规则:把数组中的值变成js对象当中的key,然后value给任意值;
把步骤1中的对象再还原成数组,对象的key作为数组中的元素。
这种利用js对象key唯一性的特性进行数组去重的方法,在雅虎YUI框架的底层代码中也有用到哦,有兴趣的小火把可以去瞄瞄哦。
一、JS对象的特性(本文中所使用的特性):key始终唯一
引例:说明对象key值的唯一性,即当重新给js已有属性赋值的时候,实际上是覆盖了key,而不是新建了keyvar t={name:'张三',age:20};//定义个js对象 console.log(t.name);//控制台输出:张三 //注意:此时对象t有两个属性:name、age t.name='李四'; console.log(t.name);//控制台输出:李四 //注意:此时对象t依然有两个属性:name、age
二、数组去重步骤解析
分为两个步骤:把要去重的数组转换成一个js的对象并返回。转换规则:把数组中的值变成js对象当中的key,然后value给任意值;
把步骤1中的对象再还原成数组,对象的key作为数组中的元素。
三、数组去重实现
var arr=[1,2,3,4,5,23,4,2,4,3]; //1.把数组装换成对象,数组的元素作为对象的key,然后返回对象 function toObject(ac_array){ var obj={};//私有的对象 for (var i=0;i<ac_array.length;i++) { obj[ac_array[i]] = true; } console.log(obj);//Object {1: true, 2: true, 3: true, 4: true, 5: true, 23: true} return obj; } //2.把对象的key获取出来作为数组的元素,然后返回数组 function keys(ac_obj){ var arr = []; for(var item in ac_obj){ if(ac_obj.hasOwnProperty(item)){ arr.push(item); } } console.log(arr);//["1", "2", "3", "4", "5", "23"] return arr; } //综合 function uniq(ac_array){ return keys(toObject(ac_array)); } //测试 var uniq_array=uniq(arr); console.log(uniq_array);//["1", "2", "3", "4", "5", "23"]
这种利用js对象key唯一性的特性进行数组去重的方法,在雅虎YUI框架的底层代码中也有用到哦,有兴趣的小火把可以去瞄瞄哦。
相关文章推荐
- JS基于对象的特性实现去除数组中重复项功能详解
- javascript中根据对象特性去除数组中的重复项
- js 合并两个数组,去除重复项,只留一个
- 利用Object中的key的唯一性去除数组的重复项
- Js去除数组中的重复项插件
- js去除数组重复项,删除重复数据的方法
- JS去除数组重复项方法2
- js数组中去除重复对象及去除空对象的方法
- JavaScript基于对象去除数组重复项的方法
- js利用apply(), Math object, js数组,对象完全智能验证
- js利用数组创建图片对象
- JS实现合并两个数组并去除重复项只留一个的方法
- 利用js动态类型特性对数组排序
- 利用数组特性便利json对象中属性
- javscript巧用对象特性去掉数组重复项并排序
- js 数组去除重复对象
- JS学习笔记2——利用filter()去除数组中的重复元素,利用filter()筛选出数组中的素数
- JS简单去除数组中重复项的方法
- JS实现合并两个数组并去除重复项只留一个的方法
- javascript:利用javascript对象的特性去掉数组中的重复项