想获取对象数组特定key对应的值数组,发现JS并无相关函数。也可以理解,因为JS中的对象数组的里面的对象可能为null对象,操作此值直接抛异常,咋不这么极端,在正常对象数组的情况下,可以如下实现该功能。当然你也可以遍历处理掉null对象先,或抛异常捕获或直接提出数组。
function getMappingValueArrayOfKey(array,keyName){
if(Object.prototype.toString.call(array)=='[object Array]'){
return array.map((item,index)=>{
return item[keyName]
})
}
return 'null(参数一应为对象数组)';//不是数组
}
const animals=[{name:'dog',sound:'汪汪'},{name:'pig',sound:'哼哼'},{name:'cat',sound:'喵喵'}]
console.log(getMappingValueArrayOfKey(animals,'name'));//["dog", "pig", "cat"]
console.log(getMappingValueArrayOfKey(animals,'sound'));//["汪汪", "哼哼", "喵喵"]