如何根据数组值匹配对象数组键,筛选得到对应结构的对象数组
正确实现代码
// 已定义的公共变量 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
相关产品推荐
相关产品推荐

