如何使用filter方法过滤数组中的非配对元素及无效值?
数组过滤解决方案
给定原始数组:
let pairsByIndexRaw = [[0, 3], [1, 2], [2, 1], null, [1], false, "whoops"];
我们需要通过filter方法筛选出有效的配对元素,同时移除各类无效值。这里的有效配对定义为仅包含两个数字元素的数组。
实现代码
const validPairs = pairsByIndexRaw.filter(item => { // 排除非数组的无效值 if (!Array.isArray(item)) return false; // 验证是否为长度2的数字配对数组 return item.length === 2 && typeof item[0] === 'number' && typeof item[1] === 'number'; }); console.log(validPairs); // 输出结果: [[0, 3], [1, 2], [2, 1]]
逻辑说明
- 第一步通过
Array.isArray(item)过滤掉所有非数组元素,直接排除null、false、"whoops"这类无效值 - 第二步校验数组长度是否为2,且两个元素的类型均为数字,确保留下的是符合要求的配对
内容的提问来源于stack exchange,提问作者Rabie Al-Ashmali
相关产品推荐
相关产品推荐

