function filterArray(arr, callback) {
let result = [];
arr.forEach((item, index, array) => {
if (Array.isArray(item)) {
// 如果当前元素是数组,递归调用filterArray
const filtered = filterArray(item, callback);
// 将递归过滤后的数组合并到result中
result = result.concat(filtered);
} else {
// 如果当前元素不是数组,执行回调函数进行过滤
if (callback(item, index, array)) {
result.push(item);
}
}
});
return result;
}
// 使用示例
const arr = [1, [2, 3, [4, 5], 6], 7, 8];
const result = filterArray(arr, (item) => item > 3);
console.log('result = ', result); // 输出: [4, 5, 6, 7, 8]
function filterArray(arr, callback) {
let result = [];
arr.forEach((item) => {
if (Array.isArray(item)) {
// 如果当前元素是数组,递归调用filterArray
const filtered = filterArray(item, callback);
// 将递归过滤后的数组合并到result中
result = result.concat(filtered);
} else {
// 如果当前元素不是数组,执行回调函数进行过滤
if (callback(item)) {
result.push(item);
}
}
});
return result;
}
// 使用示例
const arr = [1, [2, 3, [4, 5], 6], 7, 8];
const result = filterArray(arr, (item) => item > 3);
console.log('result = ', result); // 输出: [4, 5, 6, 7, 8]
VM1022:22 result = (5) [4, 5, 6, 7, 8]