我正在寻找一种方法来获取下划线链的内容并将其传递给一个函数,在这种情况下,链从文件中解析出时间戳并按时间戳对数组进行排序,得到最新的一个然后我我想简单地用path.format
重新组装路径。有没有办法用下划线来做这件事,我只是忽略了?
return _.chain(dirFiles)
.filter(function(dirFile){
return dirFile.match(file.name)
})
.map(function(dirFile){
dirFile = path.parse(dirFile)
dirFile.timestamp = dirFile.name.split("-")[file.timestampPosition]
return dirFile
})
.sortBy("timestamp")
.last()
.inject(path.format)
.value()
答案 0 :(得分:0)
<强> _。MIXIN 强>
Underscore有一个选项供您创建自己的映射函数,该函数将对象或任何类型的数据以您自己的方式映射到另一个对象或任何类型的数据。
您只需要定义自己的功能
以下是如何使用mixin
_.mixin({
pathFormat: function(val,interceptor){
// Just an example of how you can pass in your own interceptor
return interceptor(val) + path.resolve(val);
}
});
然后在链中选择你自己的函数:
_.chain(dirFiles)
...
...
sortBy("timestamp")
.last()
.pathFormat(path.format)
.value()
有了这个,pah.format
是你传递给你定义的pathFormat
函数的拦截器函数。因此,您可以处理last()
返回的对象并将其映射到另一个结果对象,并将其返回到后续的链接函数。
答案 1 :(得分:0)