2017-10-15 185 views
0

我有一個過濾器方法,檢查result是否包含this.state.filter的值,它應該被刪除。過濾和刪除陣列

我的問題是方法不會刪除錯誤result。從console.log

before

after

+0

'fetchData'是一個數組? – Dane

+0

是的,它是一個包含其他數組的數組 – EnzyWeiss

+1

您應該給出一個'fetchData'輸入的例子,以及函數的調用方式。如果'result [3]'是一個數組,那麼它不會等於另一個數組,您可以檢查該數組是否包含相同的值,或者是否具有相同的值。看看「[如何比較JavaScript中的數組?](https://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript)」 –

回答

4

而不是map它使null

filter(){ 
    const {fetchData} = this.state; 
    return fetchData.map((result, index) => (
     (result[3] == this.state.filter) ? 
     result : null //there is my problem 
    )) 
    } 

屏幕時,您必須使用Array.prototype.filter從數組中刪除元素:

filter() { 
    const { fetchData } = this.state; 
    return fetchData.filter((subarray) => (
    subarray[3] === this.state.filter 
)); 
} 
+0

哦,這比我想象的更容易。非常感謝! – EnzyWeiss