2017-11-09 4 views
0

重複するオブジェクトなしで移入する必要がある配列があります。しかし、私は常に重複した値を持つ配列を送り返しています。誰でも私がここで間違っていることとそれを修正する方法を教えてもらえますか?あなたが不明な変数duplicateArrayを参照しているようオブジェクトの配列から重複をフィルタリングする

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

https://stackoverflow.com/a/9229821/8378419私はフィルター上に読んでいました、また、この答え –

+1

を参照してくださいhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter –

+2

「out」は何ですか?!?! –

答えて

-1

が見える、試してみてください。

function removeDuplicates(array){ 
    return array.filter(function(item, pos, self) { 
    return self.indexOf(item) == pos; 
    }) 
} 

let uniqueArray = removeDuplicates(holderArr); 

これは、あなたが望むものでuniqueArrayを移入します。

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); 
関連する問題