多个对像数组取值

新手上路,请多包涵

const value1=a

let arr1=[
{a:1,
 b:2,
 c:3
},
{a:1,
 b:2,
 c:3
},
{a:1,
 b:2,
 c:3
}
]

请问如何通过value1的值去把数组对象中所有对应的值取出来,生成如下array[1,1,1]。

阅读 1.9k
4 个回答
const value1='a';
let arr1=[
{a:1,
 b:2,
 c:3
},
{a:1,
 b:2,
 c:3
},
{a:1,
 b:2,
 c:3
}
];


var getArrkey=(arr,key)=>arr.map(item=>item[key]);
getArrkey(arr1,value1);
// [1, 1, 1]
arr1.map(value=>value[value1]).filter(v=>v!==undefined)

一次循环,hasOwnProperty 避免 value1 和原型链重名,逗号表达式把代码怼一行里

arr1.reduce((res, it) => (it.hasOwnProperty(value1) && res.push(it[value1]), res), []);
function fn(arr, value) {
    return arr.reduce((prev, cur) => {
        if(cur.hasOwnProperty(value)) {
            prev = prev.concat(cur[value])
        }
        return prev

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