怎么判断每项orders里的id是否重复

怎么判断每项orders里的id是否重复

[{
  id:'1',
  name:1,
  orders:[
    {
      id:'2',
      name:1,
    },
    {
      id:'2',
      name:1,
    }
  ]
},
{
  id:'1',
  name:1,
  orders:[
    {
      id:'2',
      name:1,
    }
  ]
}]
阅读 1.5k
2 个回答
let list = [{
  id:'1',
  name:1,
  orders:[
    {
      id:'2',
      name:1,
    },
    {
      id:'2',
      name:1,
    }
  ]
},
{
  id:'1',
  name:1,
  orders:[
    {
      id:'2',
      name:1,
    }
  ]
}];

list.every(item=>{
let ids =item.orders.map(order=>order.id)
return new Set(ids).size==ids.length
});

结果 false

const data = [
  {
    id: "1",
    name: 1,
    orders: [
      {
        id: "2",
        name: 1,
      },
      {
        id: "2",
        name: 1,
      },
    ],
  },
  {
    id: "1",
    name: 1,
    orders: [
      {
        id: "2",
        name: 1,
      },
    ],
  },
];

const result = [];

// 数组项是否重复
const isRepeat = (arr) => {
  const hash = {};
  const result = arr.some((item) => {
    if (hash[item]) {
      return true;
    } else {
      hash[item] = true;
      return false;
    }
  });
  return result;
};

data.forEach((item, index) => {
  result.push(isRepeat(item.orders));
});

// [ true, false ] true表示有重复项,false表示没有重复项
console.log(result);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题