You need to enable JavaScript to run this app. JS for循环中push数组元素未达预期效果的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

JS for循环中push数组元素未达预期效果的问题咨询

问题原因

  • 核心问题是函数返回值错误:循环中每次匹配到的分类对象都会覆盖res变量,循环结束后仅返回最后一次匹配到的单个分类对象,而非完成所有元素追加后的完整arrayProducts数组。
  • 次要问题:循环变量item未加声明关键字,会隐式挂载为全局变量,存在变量污染风险。

你的元素追加逻辑本身是正确的,运行原代码时arrayProducts数组已经被修改为你预期的结构,只是打印的返回值不符合预期。

修正代码

function add(array, bigTable) {
    for (const item of array) {
        const matchItem = bigTable.find(x => x.nom === item.famille.nom);
        if (matchItem) {
            matchItem.produits.push(item)
        } else {
            console.log('Doesnt exist')
        }
    }
    // 返回修改后的完整数组
    return bigTable
}

console.log(add(arraytoAdd, arrayProducts))

运行上述代码即可得到你预期的finalResult结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 02:12:00