Javascript lodash链是如何工作的?
Lodash v4.17.2 有人能澄清一下链锁是如何工作的吗?我只是没有找到任何文档或博客来解释lodash方法的返回结果。 在下面的代码示例中,为什么对filterAge的第二个赋值不起作用?或者类似于jquery的链接?如果有人能解释这一点,我会喜欢的Javascript lodash链是如何工作的?,javascript,lodash,Javascript,Lodash,Lodash v4.17.2 有人能澄清一下链锁是如何工作的吗?我只是没有找到任何文档或博客来解释lodash方法的返回结果。 在下面的代码示例中,为什么对filterAge的第二个赋值不起作用?或者类似于jquery的链接?如果有人能解释这一点,我会喜欢的 let字符=[ {'name':'barney1','age':36,'pets':['hoppy']}, {'name':'barney2','age':36,'pets':['hoppy']}, {'name':'barney3','
let字符=[
{'name':'barney1','age':36,'pets':['hoppy']},
{'name':'barney2','age':36,'pets':['hoppy']},
{'name':'barney3','age':36,'pets':['hoppy']},
{'name':'barney4','age':36,'pets':['hoppy']},
{'name':'fred','age':40,'pets':['baby puss','dino']}
];
让filterAge=u.take(u.slice(u.filter(字符,{'age':36}),2),5);
filterAge=u2;.filter(字符,{'age':36})
.切片(2)
.采取(5);
log(JSON.stringify(filterAge))代码>
为了与lodash链接,您需要首先使用call包装您的对象-这将允许在包装的实例上调用任何lodash方法。然后,为了获得值,需要对包装对象调用value
方法。因此,您的示例如下所示:
filterAge = _(characters).filter({ 'age': 36 })
.slice(2)
.take(5).value();
如果不包装对象,则无法链接函数调用,因为您总是只返回未实现lodash方法(如take
)的数组。您可以在库的描述和其他“Seq”函数/方法中找到有关链接或序列的文档
要与lodash链接,您需要使用(value)
或创建一个序列,并在最后检索结果
在这两者之间,lodash的每个其他功能将作为序列方法提供,有两个区别:
- 这些方法返回一个修改过的序列对象,该对象保存当前值而不是值本身,但
.value()
方法除外
- 第一个参数已被删除。每个方法都从它前面的序列对象而不是参数中获取要处理的值。并且,对于方法,传递给函数的其他参数将向左移动一个位置
例如:
filterAge = _.chain(characters)
.filter({ 'age': 36 })
.slice(2)
.take(5)
.value();