<!DOCTYPE>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
// 挑战三,三维数组或 n 维数组去重,使用 arguments 重写
var arr = [2,3,4,[2,3,[2,3,4,2],5],3,5,[2,3,[2,3,4,2],2],4,3,6,2];
var unique = function(arr) {
var result = [];
(function(arr) {
var f = arguments.callee;
console.info("f=",f);
arr.forEach(function() {
if (Array.isArray(arguments[0])) {
f(arguments[0]);
console.info("f==",arguments[0]);
} else {
if (result.indexOf(arguments[0]) < 0) {
result.push(arguments[0]);
}
}
});
}(arr));
return result;
}
console.log(unique(arr)); // [2,3,4,5,6]
//一维数组
/*var arr = [1,1,2,5,6];*/
/*function unique1 (arr){
var arrs = [];
for(var i=0;i<arr.length;i++){
//-1表示arr[i]没有出现
if(arrs.indexOf(arr[i])==-1){
arrs.push(arr[i]);
}
}
console.log(arrs);
}
unique1(arr);*/
//此方法有个弊端
/*function unique2(arr){
var arrs=[];
var jump={};
for(var i=0;i<arr.length;i++){
if(!jump[arr[i]]){
arrs.push(arr[i]);
jump[arr[i]]=1;
}
}
console.log(arrs);
}
unique2(arr);*/
</script>
</head>
</html>
FuncitonObject
最新推荐文章于 2021-05-13 17:22:00 发布