为何我的JavaScript函数仅返回一个符合条件的元素?
解决你的JavaScript筛选函数问题
嘿,我太懂你盯着代码半天找不到问题的感觉了!你的函数现在只返回第一个符合条件的元素,核心问题出在return语句的使用上——当你在循环里直接return arr[i]时,函数会立刻终止执行,所以它找到第一个长度为4的字符串后就停住了,根本不会继续检查后面的元素。
修正方案1:用循环收集所有符合条件的元素
我们可以先创建一个空数组来存储结果,遍历原数组时把符合条件的元素添加进去,等整个循环结束后再返回这个结果数组:
function isFourLetters(arr) { const fourLetterWords = []; // 注意这里用let声明i,避免污染全局变量 for (let i = 0; i < arr.length; i++) { if (arr[i].length === 4) { fourLetterWords.push(arr[i]); } } return fourLetterWords; }
修正方案2:用数组的filter方法(更简洁)
JavaScript数组自带filter方法,专门用来筛选符合条件的元素,它会自动遍历数组并返回所有满足条件的元素组成的新数组,代码会更简洁易读:
function isFourLetters(arr) { return arr.filter(word => word.length === 4); }
filter的逻辑是:遍历数组中的每个元素,将传入的回调函数返回true的元素收集起来,最后返回这个新数组,完全符合你的需求~
内容的提问来源于stack exchange,提问作者Michael Alexander
相关产品推荐
相关产品推荐

