You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据数组值匹配对象数组键,筛选得到对应结构的对象数组

正确实现代码
// 已定义的公共变量
var arr1=["name", "place"]
var arr2=["details", "wrk"]
var arr3=["name"]

var objarr=[
  {id:1, name: "ayan", place: "MY", details: "finance" , wrk: true},
  {id:2, name: "mike", place: "AU", details: "teaching", wrk: false },
  {id:3, name: "john", place: "DE", details: "service" , wrk: true}
]

// 核心处理函数
function outputData(keysArr) {
  // 先判断是否需要按wrk过滤
  const filteredList = keysArr.includes('wrk') 
    ? objarr.filter(item => item.wrk === true) 
    : [...objarr]

  // 对每个对象仅保留指定键对应的键值对
  return filteredList.map(item => {
    const newObj = {}
    keysArr.forEach(key => {
      if (item.hasOwnProperty(key)) {
        newObj[key] = item[key]
      }
    })
    return newObj
  })
}
测试调用结果
// 传入arr1
console.log(outputData(arr1))
// 输出:
// [
//   {name: "ayan", place: "MY"},
//   {name: "mike", place: "AU"},
//   {name: "john", place: "DE"}
// ]

// 传入arr2
console.log(outputData(arr2))
// 输出:
// [
//   {details: "finance", wrk: true},
//   {details: "service", wrk: true}
// ]

// 传入arr3
console.log(outputData(arr3))
// 输出:
// [
//   {name: "ayan"},
//   {name: "mike"},
//   {name: "john"}
// ]

内容的提问来源于stack exchange,提问作者codecat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:24:02