为了账号安全,请及时绑定邮箱和手机立即绑定

如何判断数组对象里面有相同的元素

如何判断数组对象里面有相同的元素

呼如林 2018-12-26 22:17:26
var a = [{des:"qwe",b:"reg"},{des:"vfg",b:"fgdfd"},{des:"qwe",b:"fdfd"},{des:"vfg",b:"fdfd"}]怎么样判断 a[i].des在整个数组对象中有相同的des对应的值?
查看完整描述

1 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

重组一下,建立一个 des => model[] 的映射表


var a = [

    { des: "qwe", b: "reg" },

    { des: "vfg", b: "fgdfd" },

    { des: "qwe", b: "fdfd" }

];


var map = a.reduce((all, m) => {

    let list = all.get(m.des);

    if (!list) {

        list = [];

        all.set(m.des, list);

    }

    list.push(m);

    return all;

}, new Map());


Array.from(map.entries())

    // 这里过滤掉 list 只有一个元素的,剩下的就是有重复的

    .filter(([des, list]) => list.length > 1)

    .forEach(([des, list]) => {

        values = list.map(m => m.b);

        console.log(des, values);

    });


查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 1161 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信