首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何减少重复值的数组?

如何减少重复值的数组?
EN

Stack Overflow用户
提问于 2019-03-20 07:58:26
回答 4查看 92关注 0票数 -3

我有一个这样的数组

代码语言:javascript
运行
复制
let oldArray=[
    {type:16,img:['1']},
    {type:16,img:['2']},
    {type:16,img:['3']},
    {type:17,img:['4']}
]

如果类型相同,我希望将值连接起来。我想要的结果是:

代码语言:javascript
运行
复制
let newArray=[
    {type:16,img:['1','2','3']},
    {type:17,img:['4']}
]

我尝试使用reduce函数:

代码语言:javascript
运行
复制
    oldArray.reduce((acc,cur,idx,src)=>{
if(cur.type===a[idx+1].type){
    cur.img.concat(a[idx+1].img);
    acc.push(cur)
} else {
    acc.push(a[idx+1])
}
    return acc

},[])

似乎有一个错误,有谁可以帮助吗?谢谢。

Bibberty解决方案的替代方案:flatMap比reduce清晰得多

代码语言:javascript
运行
复制
let newArray = [...new Set(oldArray.map(e => e.type))]
                                    .map(e => {
                                        return {
                                            type: e,
                                            img: (oldArray.filter(i => i.type === e).map(x => x.img)).reduce((acc,cur,idx,src)=>{
                                                let length=src.length
                                                let tep=cur.concat(src[idx+1]);
                                                src[idx+1]=tep


                                                return src[idx=length-1]
                                            },[])
                                        }
                                    });

    console.log(newArray);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55251679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档