function unqiue(arr){
var result = [],hash = {};
for(var i =0,ele;(ele = arr[i]) != "undefined";i+=1){
if(!hash[ele]){
result.push(ele);
hash[ele] = true;
}
}
return result;
}
var arr = [];
arr[0] = 1;
arr[2] = 5;
alert(unqiue(arr));
[code="js"]for的判断条件有问题。
(ele = arr[i]) != "undefined" 这是永远为true,从而导致 死循环。
注意:undefined 不等于 字符串 "undefined"
正确的是:
typeof (ele = arr[i]) != "undefined"[/code]