问答

js 双重for循环优化为.map写法

作者:admin 2021-05-08 我要评论

let permissionId = [] for (const i in menuList) { for (const j in permission) { if (menuList[i].id == permission[j].id) { permissionId.push(menuList[i...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)
 let permissionId = []
      for (const i in menuList) {
        for (const j in permission) {
          if (menuList[i].id == permission[j].id) {
            permissionId.push(menuList[i].id)
          }
        }
      }

以上代码如何优化为.map的写法呢

在这里先谢谢各位大神们的解答了,小弟感激不尽!

###
const map = permission.reduce((r, i) => (r[i.id] = true, r), {})
const permissionId = menuList.filter(i => !!map[i.id]).map(i => i.id)
###

一句话搞定

const permissionId = menuList.filter(m => permission.some(p => p.id === m.id))?.map(r => (r.id))

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • js 双重for循环优化为.map写法

    js 双重for循环优化为.map写法

  • scss 火狐浏览器异常时为什么?

    scss 火狐浏览器异常时为什么?

  • 如何让动态图片地址,在浏览器中转为静

    如何让动态图片地址,在浏览器中转为静

  • google搜索,怎么才会出现站点链接?

    google搜索,怎么才会出现站点链接?

腾讯云代理商
海外云服务器