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

如何使用for-in语句筛选数组中大于5的元素存入新数组并打印

代码存在的核心问题

  • for...in遍历数组时,拿到的number是数组索引的字符串类型值,不是数组的元素本身,比如第一次遍历拿到的是"0"而不是1;另外for...in会遍历数组原型链上的可枚举属性,本身并不推荐用来遍历普通数组。
  • result.push (number => number > 5)这行是直接把箭头函数本身推入了结果数组,完全没有做「判断元素是否大于5、符合条件再推入」的逻辑。
  • console.log(result)写在了循环体内部,会每次循环都打印一次当前的数组,而不是只打印最终的筛选结果。

修改后的实现代码

版本1:保留for-in语句的练习需求

let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
let result = [];
for (var index in numbers){
    // 先通过索引取到对应的数组元素
    const num = numbers[index];
    // 判断是否大于5,符合条件才推入结果数组
    if (num > 5) {
        result.push(num);
    }
}
// 循环结束后统一打印最终结果
console.log(result);

版本2:实际开发更推荐的简洁实现

用数组内置的filter方法可以直接完成筛选需求,不需要手动写循环:

let numbers = [1, 2, 3, 4, 5, 6, 7, 8];
let result = numbers.filter(num => num > 5);
console.log(result);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 00:33:01