javascript - 从数组中删除重复元素(利用对象) - Javascript

标签 javascript arrays duplicates

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/

相关文章:

php - 如何避免创建重复行?

javascript - iFrame src 更改事件检测?

javascript - 将对象转换为 JSON 对象

arrays - PostgreSQL fdw 表性能在 5 次相同查询后呈指数下降

arrays - 在 3D 数组中添加列或行

python - numpy从多个文件创建数组

Mysql - 连接具有空条目的相同行

javascript - Angular 指令中的单元测试 $formatters

javascript - 浏览器支持 popstate 事件中的状态对象吗?

java - 消除数组中重复对象的最佳方法