js数组对象

发布于 2022-09-13 00:50:24 字数 719 浏览 14 评论 0

有如下数组对象:

let A = [
          { id: 1, name: "张三", address: "北京" },
          { id: 2, name: "李四", address: "上海" },
          { id: 3, name: "张三", address: "杭州" },
          { id: 4, name: "王五", address: "深圳" },
          { id: 5, name: "李四", address: "厦门" },
          { id: 6, name: "张三", address: "广州" },
        ]

现在希望能根据name属性的值判断是否有重复,如果有就(保存)返回所有name值相同的对象并存入一个新数组中,如果没有重复则删除:如下:

[
          { id: 1, name: "张三", address: "北京" },
          { id: 2, name: "李四", address: "上海" },
          { id: 3, name: "张三", address: "杭州" },
          { id: 5, name: "李四", address: "厦门" },
          { id: 6, name: "张三", address: "广州" },
        ]

希望各位大佬能帮小弟看下,感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

痴者 2022-09-20 00:50:24
var A = [
          { id: 1, name: "张三", address: "北京" },
          { id: 2, name: "李四", address: "上海" },
          { id: 3, name: "张三", address: "杭州" },
          { id: 4, name: "王五", address: "深圳" },
          { id: 5, name: "李四", address: "厦门" },
          { id: 6, name: "张三", address: "广州" },
        ];
Object.values(A.reduce((acc,cur)=>((acc[cur.name]||(acc[cur.name]=[])).push(cur),acc),[])).filter(item=>item.length > 1).flat();

结果

[
  {
    "id": 1,
    "name": "张三",
    "address": "北京"
  },
  {
    "id": 3,
    "name": "张三",
    "address": "杭州"
  },
  {
    "id": 6,
    "name": "张三",
    "address": "广州"
  },
  {
    "id": 2,
    "name": "李四",
    "address": "上海"
  },
  {
    "id": 5,
    "name": "李四",
    "address": "厦门"
  }
]
等待圉鍢 2022-09-20 00:50:24
  const arr = []
    const B = A.map(i => i.name)
    A.forEach(i => {
      if (B.filter(j => j === i.name).length > 1) arr.push(i)
    })
    console.log(arr);
会发光的星星闪亮亮i 2022-09-20 00:50:24
const counters = {};
const newArr = [];

A.forEach(item => {
  if (!counters[item.name]) counters[item.name] = 1;
  else counters[item.name]++;
});

A.forEach(item => {
  if (counters[item.name] >= 2) newArr.push(item);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文