利用js对象的特性,去掉数组中的重复项

时间:2023-03-08 15:39:09
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title> <script type="text/javascript" charset="utf-8"> var arr = [1,1,2,3,3,4,8,8,5,6,6,9]; //js对象的特性: 对象中的 key 永远不会重复
/*
var obj = {};
obj.name = 'zhangsan';
//alert(obj.name);
obj.name = 'lisi';
alert(obj.name); //会覆盖掉张三
*/ //1,把数组转成 js 对象
//2,把数组中的值 变成js对象的key
//3,把这个对象 再还原成数组 //把数组转对象
function toObj(arr){
var obj = {}; //私有的的对象
var j ;
for(var i=0 ,j= arr.length; i<j;i++){
obj[arr[i]] = true ;
}
return obj;
}
//把对象转成数组
function keys(obj){
var arr = [];//私有对象
for(var attr in obj){
if(obj.hasOwnProperty(attr)){ //YUI底层代码
arr.push(attr);
}
}
return arr;
} //综合
function uniq(newarr){
return keys(toObj(newarr));
} alert(uniq(arr)); //
</script> </head>
<body>
</body>
</html>