2015-06-16 3 views
0

Я ищу способ взять содержимое цепочки подчеркивания и передать его в функцию, в этом случае цепочка разбирает временную метку из файла и сортирует массив по timestamp, получает последнюю, то я хотел бы просто собрать путь с 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

Вы имеете в виду, как '.map (path.format) .last()'? – Bergi

+0

@Bergi Я мог бы использовать карту, но она должна была быть до последней. – ThomasReggi

+0

@ThomasReggi: есть ли проблемы с этим? – Bergi

ответ

0

Нет, нет. Однако lodash действительно обеспечивает метод _.thru так v3:

_.thru(value, interceptor, [thisArg]) 

Этот метод подобен _.tap за исключением того, что она возвращает результат перехватчика.

Вы, конечно, можете _.mixin его в подчеркивание :-)

0

_.mixin

Подчеркивание имеет возможность для Вас, чтобы создать свою собственную функцию отображения, которая отображает объект или данные любого вида к другому объекту или любого вида данных в вашем собственном пути.

Все, что вам нужно, это определение Вашей собственной функции

Ниже всего лишь пример того, как определить свою функцию с 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 является функцией перехватчика вы ра ss в функцию pathFormat, которую вы определили. Таким образом, вы можете обработать объект, возвращаемый last(), и сопоставить его с другим результирующим объектом, возвращая его обратно к последующей функции цепочки.