Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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,更新 这里有一个小问题:当我运行代码并查看控制台时,我看到它是console.logging数组中的另一个数字 谢谢你的回复,很抱歉我被否决了,但这真的让我困惑 我用不同的数字又试了一次,我想知道你们能不能在你们这边测试一下这些数字,看看你们能不能得到不同的结果 var myArray = [621608617992776, 621608617992776, 10156938936550295, 621608617992776, 10156938936550295, 1015693893

更新

这里有一个小问题:当我运行代码并查看控制台时,我看到它是console.logging数组中的另一个数字

谢谢你的回复,很抱歉我被否决了,但这真的让我困惑

我用不同的数字又试了一次,我想知道你们能不能在你们这边测试一下这些数字,看看你们能不能得到不同的结果

    var myArray = [621608617992776, 621608617992776, 10156938936550295, 621608617992776, 10156938936550295, 10156938936550295, 621608617992776, 10156938936550295];
    console.log(myArray);

    var myArrayTrimmed = [];

    for(var i in myArray){
        if(myArrayTrimmed.indexOf(myArray[i]) === -1){
            myArrayTrimmed.push(myArray[i]);
        }
    }
    console.log(myArrayTrimmed);
这给了我控制台中的以下数组:

[621608617992776, 10156938936550296]
由于某种原因,第二个数字增加了1

====================

原始问题:

我有这个阵列:

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];
我正在尝试创建一个名为
myArrayTrimmed
的新数组,该数组与上面的数组相同,只是将删除重复的数组。这将导致:

var myArrayTrimmed = [100, 200];
这是我用来实现这一目标的代码:

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];
var myArrayTrimmed = [];

for(var i in myArray){
    if(myArrayTrimmed.indexOf(myArray[i]) === -1){
        myArrayTrimmed.push(myArray[i]);
    }
}
console.log(myArrayTrimmed);
这无法正常工作,在删除重复项时,由于某种原因,它从200中减去了数字
1
,因此控制台中的输出为:

[100, 199]

我认为这一定是由于代码中的
-1
,但我不知道如何删除重复项

您可以使用下面的代码有效地删除重复的元素-

var myArrayTrimmed = myArray.filter(function(elem, pos) {
return myArray.indexOf(elem) == pos;
});

您的myArrayTrimmed将包含唯一值。

希望这会有用

var myArray = [100, 200, 100, 200, 100, 100, 200, 200, 200, 200];
var myArrayTrimmed = [];
myArray.forEach(function(item){
 if(myArrayTrimmed.indexOf(item) ==-1){
   myArrayTrimmed.push(item);
}

})
console.log(myArrayTrimmed);

检查一下这个

我相信这是最好的方法

var myArray=[100200100200100100200200200200200],
reduced=Object.keys(myArray.reduce((p,c)=>(p[c]=true,p),{});

控制台日志(减少)