如何从嵌套数组中过滤false元素?尝试for循环未成功
解决方法
首先你代码里存在语法错误:JavaScript变量名不允许包含空格,input array和output array需要改为inputArray和outputArray,这很可能是你用for循环失败的核心原因之一。
方法一:用filter方法快速实现(最简洁)
数组的filter方法可以直接过滤掉所有false元素,一行代码就能完成需求:
let inputArray = [["1.81","2.24"],["5.62","6.26"],false,["2.31","1.64"],false,false]; let outputArray = inputArray.filter(item => item !== false); console.log(outputArray); // 输出:[["1.81","2.24"],["5.62","6.26"],["2.31","1.64"]]
filter会遍历数组,仅保留判断条件返回true的元素,这里通过item !== false精准筛选出所有子数组。
方法二:修复你的for循环写法
如果坚持用for循环,修正语法问题并确保逻辑正确即可:
let inputArray = [["1.81","2.24"],["5.62","6.26"],false,["2.31","1.64"],false,false]; let outputArray = []; for (let i = 0; i < inputArray.length; i++) { const currentItem = inputArray[i]; if (currentItem !== false) { outputArray.push(currentItem); } } console.log(outputArray); // 得到期望的输出结果
你之前的for循环未生效,大概率是变量名带空格导致代码无法正常执行,或者遍历元素时的取值逻辑有误。
内容的提问来源于stack exchange,提问作者Theodore John
相关产品推荐
相关产品推荐

