我知道lodash(和下划线)有一个mixin()函数,它可以让你用你自己的属性扩展lodash。
对于我的用例,它有效。 。 。那种。
我想将JSONSelect.match添加到lodash,以便我可以在链中使用它。当您只调用_.match(selector, object)
但不在链中时,它会起作用。
换句话说,我可以这样做:
_。match('。name',cars);
和
_。match('。name',_(cars).chain()。value());
但不是
_(汽车).chain()匹配( '姓名')值();
这是一个小提琴 - 前三个按钮工作,最后一个没有。我该如何解决?
答案 0 :(得分:3)
您的使用不正确。 通常,Underscore / Lo-Dash方法遵循以下模式:
_.foo(value, arg1, arg2);
当链接转移到
时_(value).chain().foo(arg1, arg2);
并在内部向value
提供_.foo(value, ...)
。
因此,在您的示例中,_.match('.name', cars)
应更改为_.match(cars, '.name')
。
这将允许_(cars).chain().match('.name').value()
工作。
请谨记使用Lo-Dash链接是自动的.chain()
,尽管.chain()
compat版本支持lodash underscore
。