2016-06-30 16 views
5

Funkcja lodash zip() zwykle akceptuje dwie lub więcej tablic jako argumenty. Czy może zaakceptować tablicę tablic?Czy funkcja zip zip może działać z tablicą tablic?

Przykładowo, jeżeli obiektem jak var aa = [[1,2,3],[4,5,6]]; a sygnał wyjściowy z [[1,4],[2,5],[3,6]] zamek() powinny być nazywane jak _.zip(aa[0],aa[1]). Dla tablicy tablic z więcej niż dwoma elementami, wpisanie indeksów do wywołania funkcji staje się powtarzalne.

Zadzwoń pod numer _.zip(aa) nie działa. Po prostu gniazduje oryginalna tablica tablic.

Odpowiedz

2

Można splat swoją tablicę tablic używając apply lub ES2015 spread operator (...):

// call zip with a `this` context of the lodash object 
// and with each entry in aa as a separate argument 
// e. g. zip(aa[0], aa[1], ..., aa[N]); 
_.zip.apply(_, aa); 

// Same call, but using ES2015 
_.zip(...aa) 
+0

Jest to ważna uwaga o właściwym kontekście do przejścia. Czasami może działać przekazanie 'null', ale obiekt" lodash "jest oczywistym wyborem. –

2

pewno, spróbuj tego:

_.zip.apply(_, aa)