Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
507 views
in Technique[技术] by (71.8m points)

js对象数组合并,把key相同的合并到上一个对象中去

原始数据:

[
    {
        type: 1,
        value: 1
    },
    {
        type: 1,
        value: 2
    },
    {
        type: 2,
        value: 3
    },
    {
        type: 2,
        value: 4
    },
    {
        type: 1,
        value: 5
    },
    {
        type: 1,
        value: 6
    },
    {
        type: 2,
        value: 7
    }
]

想要得到的结果:

[
    {
        type: 1,
        value: 1
    },
    {
        type: 1,
        value: '2,3,4'
    },
    {
        type: 1,
        value: 5
    },
    {
        type: 1,
        value: '6,7'
    }
]

相当于把type=2的类型先合并,然后再合并到上一个对象中去,麻烦各位大侠鼎力相助!在线等


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
let arr = [
    {
        type: 1,
        value: 1
    },
    {
        type: 1,
        value: 2
    },
    {
        type: 2,
        value: 3
    },
    {
        type: 2,
        value: 4
    },
    {
        type: 1,
        value: 5
    },
    {
        type: 1,
        value: 6
    },
    {
        type: 2,
        value: 7
    }
];
let newArr = []
arr.map((item,index)=>{
    if(item.type==2){
        newArr[newArr.length-1].value += ','+item.value;//这里需要加个判断判断前一个如果没有type=1的数据时怎么办,但是不知道你没有时要如何展示,故没有加判断
    }else{
        newArr.push(item);
    }
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...