Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

image.png

const pluckDeep = key => obj => key.split('.').reduce((accum, key) => accum[key], obj)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
4.1k views
Welcome To Ask or Share your Answers For Others

1 Answer

就是取嵌套属性值:

let data = {
  a: {
    b: {
      c: {
        d: 1
      }
    }
  }
}

pluckDeep('a.b.c.d')(data) //返回1

说实话写得极其糟糕,这样的代码短但并不简洁,并且没处理空值。

好的代码,应该易读、易用,并且健壮。

如果实现这样一个接口,暴露给外部应该是直接接收2个参数:obj和keyString。而不是像现在接收一个参数,返回一个函数,再接收一个参数,再返回结果,反直观思维。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...