var a = [{des:"qwe",b:"reg"},{des:"vfg",b:"fgdfd"},{des:"qwe",b:"fdfd"},{des:"vfg",b:"fdfd"}]
怎么样判断 a[i].des在整个数组对象中有相同的des对应的值?
解决方案
重组一下,建立一个 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); });