*初级小白*~ 2022-06-15 22:07 采纳率: 97.9%
浏览 77
已结题

javascript数组转换成对象

如何把arr转换成fruit格式的对象,并且把{ memo: '', name: '' }替换成{ name: "香蕉", memo: "甜" }, { name: "苹果", memo: "甜" },最终形成newObj格式的对象


 let fruit = {
            水果: [{ memo: '', name: '' }],
            零食: [{ memo: '', name: '' }],
            蔬菜: [{ memo: '', name: '' }],
            其他: [{ memo: '', name: '' }]
        }
        let arr = [
            { name: "菠菜", memo: "甜", type: "蔬菜" },
            { name: "炸鸡", memo: "甜", type: "其他" },
            { name: "薯片", memo: "甜", type: "零食" },
            { name: "香蕉", memo: "甜", type: "水果" },
            { name: "果冻", memo: "甜", type: "零食" },
            { name: "苹果", memo: "甜", type: "水果" },
            { name: "泡菜", memo: "甜", type: "蔬菜" },
        ]
        let newObj = {
            水果: [{ name: "香蕉", memo: "甜" }, { name: "苹果", memo: "甜" }],
            零食: [{ name: "薯片", memo: "甜" }, { name: "果冻", memo: "甜" }],
            蔬菜: [{ name: "菠菜", memo: "甜" }, { name: "泡菜", memo: "甜" }],
            其他: [{ name: "炸鸡", memo: "甜" },]
        }
  • 写回答

3条回答 默认 最新

  • 关注

    循环数组直接添加即可
    你题目的解答代码如下:

            let arr = [
                { name: "菠菜", memo: "甜", type: "蔬菜" },
                { name: "炸鸡", memo: "甜", type: "其他" },
                { name: "薯片", memo: "甜", type: "零食" },
                { name: "香蕉", memo: "甜", type: "水果" },
                { name: "果冻", memo: "甜", type: "零食" },
                { name: "苹果", memo: "甜", type: "水果" },
                { name: "泡菜", memo: "甜", type: "蔬菜" },
            ]
            let newObj = {
                水果: [],
                零食: [],
                蔬菜: [],
                其他: []
            }
            arr.forEach(function(v, i){
                newObj[v.type].push({ name: v.name, memo: v.memo });
            });
            console.log(newObj);
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月15日