Я пытаюсь преобразоватьПочему lodash's mapValues не работает с _.первым как обратный вызов?
var stuff = { 1234: [{ name: "obj1" }], 3456: [{ name: "obj2" }] };
в
{ 1234: { name: "obj1" }, 3456: { name: "obj2" } }
(обратите внимание на особые массивы).
Я понял, что:
_.mapValues(stuff, function(arr) { return _.first(arr); })
делает работу, но то, что я не понимаю, почему не следующее достаточно?
_.mapValues(stuff, _.first)
возвращает
{ 1234: [], 3456: [] }
А, так и подпись '_.first (array, [callback], [thisArg])' имеет некоторые параметры, заполненные совершенно неправильными значениями, поэтому делает неправильную вещь. Есть ли что-нибудь «причудливое» (короткое, сжатое, из коробки). Я могу обернуть '_.first', чтобы игнорировать что-либо, кроме первого аргумента, например мой обратный вызов с' arr': _ _mapValue (stuff, _ .fancy (_. первый)) '? – TWiStErRob
@TWiStErRob: Конечно: '_.fancy = function (c) {return function() {return c (arguments [0]); }}; ';) –
Это не из коробки ... Мне нужно написать это. – TWiStErRob