You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何JavaScript数组筛选函数仅返回首个4字母元素?求错误排查

问题分析与修复

你的代码问题很明确:return result被放在了if判断的内部。

当循环第一次找到长度为4的元素时,执行push后立刻触发return,函数直接结束,后续的循环迭代根本没机会运行,所以只能拿到第一个符合条件的元素。

修正后的代码

function friend(friends){
  let result = [];
  for (let i = 0; i < friends.length; i++){
    if (friends[i].length == 4) {
      result.push(friends[i]);
      // 把return移出if块,放到循环结束后
    }
  }
  return result; // 遍历完所有元素再返回结果
};

let x = ["Dustin", "Lily", "Steve", "Zed", "Mike"]; 
console.log(friend(x)); // 输出: ["Lily", "Mike"]

更简洁的写法(可选)

用JS数组的filter方法可以一行完成筛选,逻辑更清晰:

function friend(friends){
  return friends.filter(name => name.length === 4);
};

内容的提问来源于stack exchange,提问作者sanaaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:05:20