js 两个数组中取name相等返回其索引的简单方法?

数组1

contents: [
        {
          name: "海区",
          id: 1
        },
        {
          name: "城市近海",
          id: 2
        },
        {
          name: "滨海旅游",
          id: 3
        },
        {
          name: "渔场",
          id: 4
        },
        {
          name: "渔港",
          id: 5
        },
        {
          name: "港口",
          id: 6
        },
        {
          name: "海洋牧场",
          id: 7
        },
        {
          name: "中长期",
          id: 8
        },
        {
          name: "海冰",
          id: 9
        }
      ]

数组2 每次返回的不一样 但是都包含在contents 的name中
[“渔场”,“港口”,"滨海旅游"]

要求把包含数组2name值的数组1的索引值 放到一个新数组里

有没有简单方法?

阅读 1.5k
2 个回答

arr2.map(name => contents.findIndex(item => item.name === name)).filter(index => index > -1)

用数组的filter方法吧

function filter(list, key){
    return list.filter(el => key.includes(el.name))
}
filter(contents, name)

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题