function removeDuplicate(num){
var out=[];
var obj={};
for (x = 0; x < num.length; x++){
obj[num[x]]=0;
}
for (x in obj){
out.push(x);
}
return out;
}
var theNum = [1,1,2,3,3,3,4,4,5,6,7,7,7];
result = removeDuplicate(theNum);
alert(theNum);
alert(result);
大家好,我是编程新手,我不知道这个解决方案是如何工作的,在我看来,它为该数组中的每个元素将零分配到该对象中......?
对于对象中的每个 x,将它们插入数组中?...此时 X 携带什么值?
非常感谢您的帮助
最佳答案
基本上,这就像一个哈希集。
这个for循环
将数组中的每个元素映射到0。
for (x = 0; x < num.length; x++){
obj[num[x]]=0;
}
// result obj
obj = {1 : 0,
2 : 0,
3 : 0,
4 : 0,
5 : 0,
6 : 0,
7 : 0}
这个for循环
将obj
中的所有键复制回数组。
for (x in obj){
out.push(x);
}
// result array
out = [1, 2, 3, 4, 5, 6, 7]
希望对您有帮助。
关于javascript - 从数组中删除重复元素(利用对象) - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30635146/