2016-06-30 18 views
5

Lodash zip() işlevi normalde argüman olarak iki veya daha fazla dizi kabul eder. Bir dizi diziyi kabul edebilir mi? Örneğin, var aa = [[1,2,3],[4,5,6]]; gibi bir nesne verildiğinde ve [[1,4],[2,5],[3,6]] zip() istenen bir çıktısı gibi _.zip(aa[0],aa[1]) gibi çağrılmalıdır. Örneğin, _.zip(aa[0],aa[1]). İkiden fazla eleman içeren diziler dizisi için, indeksleri fonksiyon çağrısına yazmak tekrarlı hale gelir.Lodash zip işlevi bir dizi diziyle çalışabilir mi?

_.zip(aa) numaralı telefon çalışmıyor. Sadece dizilerin orijinal dizisini barındırır.

cevap

2

Sen apply veya ES2015 spread operator (...) kullanarak dizilerin dizinizi uyarısı edebilirsiniz:

// 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

Bu geçmesine doğru bağlamda ilgili önemli bir nottur. Bazen 'null' iletmek için çalışabilir, ancak lodash nesnesi açıkça doğru seçimdir. –

2

Tabii, bu deneyin:

_.zip.apply(_, aa) 
İlgili konular