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: "甜" },]
        }

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

        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

 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: "蔬菜" },
        ]
        fruit = {
            水果: [],
            零食: [],
            蔬菜: [],
            其他: []
        }
        for (let key in arr) {
            var k=arr[key].type
            fruit[k].push({ name: arr[key].name, memo: arr[key].memo });
        }
        console.log(fruit);

结果如下:

img

img

也可以这么写:

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: "蔬菜" },
        ]
        for (let key in arr) {
            var k=arr[key].type
            if(fruit[k][0].memo==''){
                fruit[k]=[];
            }
            fruit[k].push({ name: arr[key].name, memo: arr[key].memo });
        }
        console.log(JSON.stringify(fruit,null,4));

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632