代码之家  ›  专栏  ›  技术社区  ›  Prabu Raja

Lodash相当于hoek.rech(hapijs)?

  •  2
  • Prabu Raja  · 技术社区  · 11 年前

    Hoek.rech解决了一个有趣且古老的javascript对象遍历问题: https://github.com/hapijs/hoek#reachobj-chain-options .

    例子:

    var chain = 'a.b.c';
    var obj = {a : {b : { c : 1}}};
    
    Hoek.reach(obj, chain); // returns 1
    

    我只想要Hoek的这个功能,而不需要其他功能。只是想知道这个功能是否在Lodash中?我很快浏览了lodash文档,但它似乎不在那里。

    想知道我是否有办法做到这一点,而不加“hoek”作为我的dep.谢谢你的帮助!

    2 回复  |  直到 11 年前
        1
  •  5
  •   Gergo Erdosi    11 年前

    您可以使用 _.get() :

    var _ = require('lodash');
    
    var chain = 'a.b.c';
    var obj = {a : {b : { c : 1}}};
    
    var result = _.get(obj, chain);
    
        2
  •  0
  •   Whoaa512    11 年前

    考虑使用npm模块 property-path 然后像这样将其作为lodash混合物加入

    var propPath = require('property-path')
      , _ = require('lodash')
      , obj = {a : {b : { c : 1}}}
      , chain = 'a.b.c'
    
    _.mixin({ 'reach': propPath.get })
    
    _.reach(obj, chain)