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

使用Array.prototype.forEach.apply遍历对象无输出问题求助

问题分析与解决

你的代码没有输出有两个核心问题:

  1. apply参数传递错误
    apply方法的第二个参数必须是包含目标函数所需参数的数组。你直接把回调函数传给了apply,导致forEach没有接收到正确的回调参数,因此不会执行遍历逻辑。

  2. 类数组对象缺少length属性
    你的obj是类数组结构,但没有length属性。Array.prototype.forEach依赖length属性来确定遍历的元素数量,没有这个属性时,它会认为没有可遍历的元素,直接跳过执行。

修正后的代码

var obj = {
    0: 'Asad',
    1: 'Ali',
    2: 'Rizwan',
    length: 3 // 添加length属性,匹配元素数量
}
console.log(obj);
let FOREAC = Array.prototype.forEach;

// 将回调函数放入数组,作为apply的第二个参数
FOREAC.apply(obj, [(item) => {
    console.log('ITEM LOGS');
    console.log(item);
}])

执行这段代码后,会依次输出每个元素:

ITEM LOGS
Asad
ITEM LOGS
Ali
ITEM LOGS
Rizwan

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:17:10