从另一个数组的所有元素中过滤一个数组是一项常见的编程任务。在 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中文网其他相关文章!