我有一个对象列表,它如下所示:
obj = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ]
如何使用JavaScript获取与键对应的数组?
例如,对于b,我将获得[4,5,6]。我需要一个函数,可以输入键并返回与之相关的相应数组。
我有一个对象列表,它如下所示:
obj = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ]
如何使用JavaScript获取与键对应的数组?
例如,对于b,我将获得[4,5,6]。我需要一个函数,可以输入键并返回与之相关的相应数组。
find()
和Object.keys()
。将keys数组的第一个元素与给定的键进行比较。"Original Answer"翻译成"最初的回答"。
const arr = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ];
const getByKey = (arr,key) => (arr.find(x => Object.keys(x)[0] === key) || {})[key]
console.log(getByKey(arr,'b'))
console.log(getByKey(arr,'c'))
console.log(getByKey(arr,'something'))
find
和 hasOwnProperty
。
const arr = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ];
const byKey = (arr, key) => {
return (arr.find(e => e.hasOwnProperty(key)) || {})[key];
};
console.log(byKey(arr, 'a'));
只需使用属性索引器,即obj['b']
obj = {a: [1,2,3], b: [4,5,6], c: [7,8,9]}
这样只使用一个对象,有什么原因吗? - Daniel Beck