<script type="text/javascript">
var arr = [1,2,3,4,5,6,7,8,1,2,3,4,5,12,13,14,15];
/*
js对象里没有重复的key,所以可以通过以下方法来解决数组去重
1.把数组转换成对象
2.把值变成对象中的key
3.再把对象还原成数组
*/
//把数组转换成对象
function toObject(arr){
var obj = {};
var j;
for(var i=0, j=arr.length; i<j; i++){
//把之变成对象中的key
obj[arr[i]] = true;
}
return obj;
}
//把对象还原成数组
function toKey(obj){
var a = [];
for(var arr in obj){
//hasOwnProperty:用于检测给定的属性在当前对象实例中(而不是原型中)是否存在
if (obj.hasOwnProperty(arr)) { //YUI底层代码
a.push(arr);
}
}
return a;
}
//综合方法
function toArr(newArr){
return toKey(toObject(newArr));
}
console.log(toArr(arr));
</script>
数组去重,简短而有效的方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.