求助filter过滤器

求助!filter过滤

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

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

阅读 1.7k
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;
}, []);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题