js数组,提取A数组中B数组存在的元素

先贴上数据

img


我想提出routes中name与menuNm有对应的项目

          this.menuList = routes.filter(e => {
            return menuNm.some(item => item == e.name)
          })

但是控制台打印this.menuList一直为空,哪里有问题,麻烦指点迷津

循环遍历嵌套,有相同的值 return出来

你这块代码逻辑是没问题的,造成这情况,需要注意menuList 是在什么阶段进行赋值的。

routes.filter(e => menuNm.includes(e.name))    // 你那个看着挺别扭的,换成这写法会清晰很多

用你代码试了,没问题的


let routes = [{ name: "name1" }, { name: "name2" }, { name: "name3" }];
let menuNm = ["name1", "name3"];

console.log(routes.filter((e) => {
    return menuNm.some((item) => item == e.name);
  }))

过滤代码没问题,可能的原因是this.menuList输出时 未完成过滤