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

JavaScript 如何映射对象内嵌套数组并转换为指定数据结构

核心问题

你当前的map回调函数已经接收了遍历到的当前数组项参数aCake,但你全程都通过固定索引读取原始数组bakery.items.item的指定位置数据,没有用到当前遍历的aCake值,才会导致所有转换结果都和数组第一项一致。

正确实现方案

完全基于回调传入的当前项aCake取值,同时按照要求处理各个字段的格式:

var exampleTest = bakery.items.item.map(mapCake);
function mapCake (aCake) {
    // 提取所有面糊类型拼接为字符串
    const batterTypes = aCake.batters.batter.map(batter => batter.type).join(',');
    // 计算馅料数量,无馅料属性则默认返回0
    const fillingCount = aCake.fillings ? aCake.fillings.filling.length : 0;
    return {
        id: parseInt(aCake.id), // 字符串ID转整数符合目标要求
        type: aCake.type,
        name: aCake.name,
        ppu: aCake.ppu,
        batters: batterTypes,
        ingredients: [...aCake.topping], // 浅拷贝所有topping数据
        countOfFillings: fillingCount
    };
}

如果需要对ingredients做深拷贝避免源数据修改影响转换结果,可以替换为JSON.parse(JSON.stringify(aCake.topping))或者自定义深拷贝方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:33:03