Lodash相当于hoek.reach(hapijs)?

时间:2015-03-12 18:16:50

标签: javascript lodash hapijs

Hoek.reach解决了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 doc进行了扫描,但它似乎并不存在。

试图弄清楚我是否有办法在不添加" hoek"作为我的dep。谢谢你的帮助!

2 个答案:

答案 0 :(得分:5)

您可以使用_.get()

var _ = require('lodash');

var chain = 'a.b.c';
var obj = {a : {b : { c : 1}}};

var result = _.get(obj, chain);

答案 1 :(得分:0)

考虑使用npm模块property-path,然后将其添加为lodash mixin,如此

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

_.mixin({ 'reach': propPath.get })

_.reach(obj, chain)