求助filter过滤器

求助!filter过滤

[
  {code: "110000", name: "北京市"},
  {code: "110100", name: "北京市"},
  {code: "110101", name: "东城区"}
]

如果第一组里的name 和 第二组里的name 相同
就取第一组的code和最后一组的code

阅读 1.8k
2 个回答
filter 实现
  const data = [
    { code: "110000", name: "北京市" },
    { code: "110100", name: "北京市" },
    { code: "110101", name: "东城区" }
  ];
  let obj = {};
  const result = data.filter(item =>
    obj[item.name] ? false : (obj[item.name] = true && true)
  );
  obj = null; //释放内存
  console.log(result);

除了filter可以实现,还有mapreduce或者for循环也能实现,需要的话再进行补充

其实没看懂到底想要的结果是啥, 这个也许是你想要的!

let res = [
    {code: "110000", name: "北京市"},
    {code: "110100", name: "北京市"},
    {code: "110101", name: "东城区"}
];

let result = res.reduce((result, item) => {
    if (!result.find(v => v.name === item.name)) {
        result.push(item);
    }
    return result;
}, []);
推荐问题