要过滤嵌套数组,可以使用JS的filter()方法和递归
函数
来实现。下面是一个包含代码示例的解决方法:
// 递归函数,用于过滤嵌套数组
function filterNestedArray(arr, callback) {
// 使用filter()方法过滤当前层级的数组
var filteredArray = arr.filter(callback);
// 使用递归函数过滤每个子数组
var nestedFilteredArray = filteredArray.map(function(item) {
if (Array.isArray(item)) {
return filterNestedArray(item, callback);
} else {
return item;
return nestedFilteredArray;
// 示例数组
var arr = [1, [2, 3], [[4, 5], 6], 7];
// 过滤函数,过滤大于3的元素
function filterCallback(item) {
return item > 3;
// 过滤嵌套数组
var filteredArray = filterNestedArray(arr, filterCallback);
console.log(filteredArray); // 输出:[ [ [ 4, 5 ], 6 ], 7 ]
在上面的示例中,我们定义了一个递归函数filterNestedArray
来过滤嵌套数组。该函数接受两个参数:arr
是要过滤的数组,callback
是过滤函数,用于判断是否保留数组中的元素。函数首先使用filter()
方法过滤当前层级的数组,然后使用map()
方法递归地过滤每个子数组。最后,函数返回过滤后的嵌套数组。
在示例中,我们使用了一个示例数组arr
,其中包含了多层嵌套的子数组。我们定义了一个过滤函数filterCallback
,该函数用于判断数组中的元素是否大于3。通过调用filterNestedArray
函数,并将arr
和filterCallback
传递给它,我们可以得到过滤后的嵌套数组filteredArray
。最后,我们将filteredArray
打印到控制台上。