我有一个需要填充的数组,没有重复的对象。但是,我不断被发回一个包含重复值的数组。谁能告诉我这里我做错了什么以及如何解决它?
let holderArr = [
{
one: "A",
two: 2,
three: "String"
},
{
one: "B",
two: 2,
three: "String"
},
{
one: "A",
two: 2,
three: "String"
}]
function removeDuplicates(array){
let filteredArr = [];
return duplicateArray.filter((duplicate) => {
let id = [duplicate.one, duplicate.two].join("|");
if(filteredArr.indexOf(id) === -1){
filteredArr.push(id);
}
return out;
})
}
removeDuplicates(holderArr);
答案 0 :(得分:0)
我不是专业人士,但通过这种方式可行。
let holderArr = [1,3,5];
function removeDuplicates(array){
var filteredArr = [];
for(let i=0; i<array.length; i++){
if(filteredArr.indexOf(array[i]) === -1){
filteredArr.push(array[i]);
}
}
return filteredArr;
}
removeDuplicates(holderArr);
我看了你的代码。你在某些方面有误。 在这些编辑之后它会起作用,试着弄清楚你在哪里弄错了。
function removeDuplicates(array){
let filteredArr = [];
return array.filter((id) => {
if(filteredArr.indexOf(array[id]) === -1){
filteredArr.push(array[id]);
}
return filteredArr;
})
}
removeDuplicates(holderArr);
答案 1 :(得分:-1)
看起来您指的是未知变量duplicateArray
,请尝试:
function removeDuplicates(array){
return array.filter(function(item, pos, self) {
return self.indexOf(item) == pos;
})
}
let uniqueArray = removeDuplicates(holderArr);
这将填充您想要的uniqueArray。