deepGet
개요
이 글은 https://www.30secondsofcode.org/에서 작성한 글을 번역 및 확인해보는 글 입니다.
원문 : deepGet
`keys` 배열을 기반으로 중첩된 JSON object내의 목표 값을 찾습니다.
Array
내의 중첩된 JSON object 내에서 키를 비교합니다. Array.prototype.reduce()
를 사용하여 중첩된 JSON 객체에서 하나씩 값을 가지고 옵니다. 만약 키가 객체내에 존재한다면 목표값을 반환하고 그렇지 않다면 null
을 리턴합니다.
const deepGet = (obj, keys) =>
keys.reduce((xs, x) => {
console.log('xs::', xs)
console.log('x::', x)
return xs && xs[x] !== null && xs[x] !== undefined ? xs[x] : null
}, obj)
let index = 2
const data = {
foo: {
foz: [1, 2, 3],
bar: {
baz: ['a', 'b', 'c'],
},
},
}
deepGet(data, ['foo', 'foz', index]) // get 3
deepGet(data, ['foo', 'bar', 'baz', 8, 'foz']) // null
Leave a comment