数组中相同id的其他属性进行拼接的方法

47 阅读1分钟

 let list = [

        { id: '1', name: '甲', title: '甲说的话' },

        { id: '1', name: '乙', title: '霜晨月' },

        { id: '1', name: '丙', title: '西风烈' },

        { id: '2', name: '秦王', title: '诸侯尽西来' },

        { id: '3', name: '陈独秀', title: '马蹄声碎' },

        { id: '4', name: '小红', title: '6' },

        { id: '4', name: '小蓝', title: '雄关漫道真如铁' },

        { id: '2', name: '政', title: '八面玲珑' },

        { id: '5', name: '李世民', title: '登山麾武节,背水纵神兵' },

    ]

    let newlist = []//创建一个空数组

//将原数组进行循环

    list.forEach(item => {

 //通过findeindex查找是否有满足条件的下标

        let index = newlist.findIndex(n => n.id == item.id)

// 如果没有就push进去

        if (index == -1) {

            newlist.push(item)

        } else {

//有的话进行拼接

            newlist[index].name = newlist[index].name + ',' + item.name

            newlist[index].title = newlist[index].title + ',' + item.title

        }

    })

    console.log(newlist);

   let list = [

        { id: '1', name: '甲', title: '甲说的话' },

        { id: '1', name: '乙', title: '霜晨月' },

        { id: '1', name: '丙', title: '西风烈' },

        { id: '2', name: '秦王', title: '诸侯尽西来' },

        { id: '3', name: '陈独秀', title: '马蹄声碎' },

        { id: '4', name: '小红', title: '6' },

        { id: '4', name: '小蓝', title: '雄关漫道真如铁' },

        { id: '2', name: '政', title: '八面玲珑' },

        { id: '5', name: '李世民', title: '登山麾武节,背水纵神兵' },

    ]

    let newlist = []

    list.forEach(item => {

        let index = newlist.findIndex(n => n.id == item.id)

        if (index == -1) {

            newlist.push(item)

        } else {

            newlist[index].name = newlist[index].name + ',' + item.name

            newlist[index].title = newlist[index].title + ',' + item.title

        }

    })

    console.log(newlist);