2015-03-12 2 views
1

Hoek.reach решает интересную и старую проблему прохождения объекта javascript: https://github.com/hapijs/hoek#reachobj-chain-options.Лодашский эквивалент hoek.reach (hapijs)?

Пример:

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

Hoek.reach(obj, chain); // returns 1 

Я хочу только эту функциональность Хука и больше ничего. Просто интересно, есть ли эта функция в Lodash? Я быстро просмотрел документ lodash, но, похоже, он не был там.

Попытка выяснить, есть ли у меня способ сделать это, не добавляя «hoek» в качестве моего dep. Спасибо за вашу помощь!

+0

Почему вы думаете, этот вопрос плохо? Я буду благодарен за комментарии к проблемам в моем вопросе, чтобы я мог улучшить. –

ответ

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) 
5

Вы можете использовать _.get():

var _ = require('lodash'); 

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

var result = _.get(obj, chain); 
Смежные вопросы