Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要解释javascript函数从数组中删除重复项吗_Javascript_Arrays - Fatal编程技术网

需要解释javascript函数从数组中删除重复项吗

需要解释javascript函数从数组中删除重复项吗,javascript,arrays,Javascript,Arrays,我在Javascript中找到了这个函数,它提供了一个数组,并获得了一个没有重复项的数组。 有人能给我解释一下每一行代码吗 function removeDuplicate(array) { var i, len=array.length, out=[], obj={}; for (i=0;i<len;i++) { obj[array[i]]=0; } for (i in obj) { out.push(i); } r

我在Javascript中找到了这个函数,它提供了一个数组,并获得了一个没有重复项的数组。 有人能给我解释一下每一行代码吗

function removeDuplicate(array) 
{

  var i, len=array.length, out=[], obj={};

  for (i=0;i<len;i++) 
    {
    obj[array[i]]=0;
    }
  for (i in obj)
    {
    out.push(i);
    }
  return out;
}
函数移除副本(数组)
{
变量i,len=array.length,out=[],obj={};

对于(i=0;i首先是变量定义。“i”是循环的idnex,后来用作值持有者。“len”只是array.length的缩写。“out”是作为函数进程构建的新数组。最后,“obj”是一个对象,我们在获取值时将其存储在其中

现在,我们有了第一个循环,它迭代输入数组。在该循环中,我们使用数组的值作为属性名,使用“0”作为属性值在obj中创建属性。如果数组的任何元素都有重复的值,则将使用“obj”中相同的属性名(这是删除重复项的地方)

下一个循环,我们在“obj”中的属性上有一个for循环,并将这些属性名推送到“out”数组中


最后一行返回我们的'out'数组。

可能重复的帖子..谢谢。因此,如果数组是[a,b,c,d,a],那么在第一行中为创建的对象是{a:0,b:0,c:0,d:0,a:0},但是属性已经存在,所以没有添加(我写了它,但不应该写)。属性0的值是否表示没有重复项?或者我们可以编写任何内容而不是0?完全正确。0是任意的,因此可以使用任何非空值。正是具有该名称的属性已经存在,才使其工作。