typescript - Hur får jag värdet på en nyckel från en lista med objekt i Javascript?


Jag har en lista med objekt på följande sätt:

obj = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ]

Hur får jag motsvarande array för en nyckel med JavaScript?

Till exempel för b skulle jag få [4,5,6]. Jag behöver en funktion där jag kan ge nyckeln som indata och den returnerar mig den motsvarande array som är kopplad till den.

Svar #1

Du kan använda find() och Object.keys(). Jämför det första elementet i nyckelarrayen med den angivna nyckeln.

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'))

Svar #2

Du kan använda find och in

let obj = [ { a:[1,2,3] }, { b:[4,5,6] }, { c:[7,8,9] } ]

let findByKey = (arr,key) => {
  return (arr.find(ele=> key in ele ) || {})[key]
}

console.log(findByKey(obj,'b'))
console.log(findByKey(obj,'xyz'))