js筛选数据?

let arr1 = [
    {
        "eHireJobID": "241206141",
        "name": "测试导入190821"
    },
    {
        "eHireJobID": "0",
        "name": "../../../../../../etc/passwd"
    },
    {
        "eHireJobID": "241189468",
        "name": "bannedwirdtest"
    },
    {
        "eHireJobID": "241192916",
        "name": "181107新增职位2"
    },
    {
        "eHireJobID": "241186470",
        "name": "appp"
    },
    {
        "eHireJobID": "241192918",
        "name": "181107新增职位2"
    },
    {
        "eHireJobID": "241186017",
        "name": "test2"
    },
    {
        "eHireJobID": "0",
        "name": "reetretre"
    },
    {
        "eHireJobID": "241186015",
        "name": "tetete"
    },
    {
        "eHireJobID": "241192917",
        "name": "删除多余文件"
    },
    {
        "eHireJobID": "241257974",
        "name": "200518新增职位通天塔"
    }
]
let arr2 = [
    "测试导入190821",
    "181107新增职位2"
]

数据如上,想要从arr2里面对应找出arr1里的eHireJobID,最后组成数组[241192918,241192916]这样,应该如何修改

阅读 2k
4 个回答

let data = arr1.filter((x) => arr2.some((y) => y === x.name)).map(z => z.eHireJobID)

console.log(data)
function getTagetsByKeys(keyArr = [], sourceArr = [], key = 'name', targetKey) {
  return keyArr.map(name => {
    let item = sourceArr.find(r => r[key] === name)
    
    if (item) {
      return item[targetKey]
    }
  }).filter(r => !!r)
}

只提供思路。
可以将 arr 遍历成 let obj = { "name":["eHireJobID","eHireJobID2"] },通过遍历 arr2 去匹配 obj 的 key 去查找。

试试如下代码

new Set((arr1.filter(item => arr2.includes(item.name)).map(item=> item.eHireJobID)))
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题