從另一個陣列的所有元素中過濾一個陣列是一項常見的程式設計任務。在 JavaScript 中,通常使用 .filter() 函數來完成此操作。但是,了解如何向函數提供要刪除的值可能具有挑戰性。
考慮以下場景:
var array = [1,2,3,4]; var anotherOne = [2,4]; var filteredArray = array.filter(myCallback); // filteredArray should now be [1,3] function myCallBack(){ return element ! filteredArray; //which clearly can't work since we don't have the reference <,< }
在上面的範例中,myCallBack 函數嘗試傳回一個元素過濾後的陣列中不存在,但此邏輯不起作用,因為呼叫函數時,filteredArray 尚未定義。
使用過濾數組filter() 函數中,應該傳遞一個回調函數,該函數對於應包含在過濾數組中的元素返回true,對於應刪除的元素返回false。然後,透過將回呼函數應用於原始數組的每個元素來建立過濾後的數組。
在從另一個數組的所有元素中過濾一個數組的情況下,可以簡化回調函數,如下所示以下代碼:
var arr1 = [1,2,3,4], arr2 = [2,4], res = arr1.filter(item => !arr2.includes(item)); console.log(res); // Output: [1,3]
這裡,filter() 函數迭代arr1並為每個元素呼叫回調函數。回呼函數,item => !arr2.includes(item),對於 arr2 中不存在的元素傳回 true,否則傳回 false。結果,過濾後的陣列 res 只包含 arr2 中不存在的元素 [1,3]。
以上是如何在 JavaScript 中從另一個陣列的元素中過濾一個陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!