function,

dig

FreeVue FreeVue Follow Mar 20, 2019 · 1 min read
dig
Share this

dig. 지정된 키를 기반으로 중첨 JSON 객체의 대상 값을 반환합니다.

in 연산자를 사용하여 대상이 obj에 있는지 확인합니다. 발견된, obj [target]의 값을 반환하고 그렇지 않으면 Object.values(obj) 및 Array.reduce()를 사용하여 첫번째 일치하는 키 / 값 쌍이 발견될 때까지 각 중첩 객체에서 dig를 재위 적으로 호출합니다.

const dig = (obj, target) =>
  target in obj
    ? obj[target]
    : Object.values(obj).reduce((acc, val) => {
        if (acc !== undefined) return acc
        if (typeof val === 'object') return dig(val, target)
      }, undefined)

// 예시
const data = {
  level1: {
    level2: {
      level3: 'some data',
    },
  },
}
dig(data, 'level3') // 'some data'
dig(data, 'level4') // undefined

[출처: http://30.surge.sh/]