2016-03-03 36 views
5

Czy istnieje funkcja w loży, aby zainicjować tablicę z domyślnymi wartościami pustymi dla danej długości?Funkcja "Lodash/Podkreśl" do Inicjalizacji tablicy z domyślnymi wartościami null o zadanej długości

metoda Array obecnie za pomocą:

 var myArray = Array.apply(null, Array(myArrayLength)).map(function() { return null }); 

Lodash Funkcja próbuje użyć:

 var myArray = _.times(myArrayLength, null); 

Wymagane tablicy:

var myArray = [null, null, .......]; 

Odpowiedz

12

To powinno robić sztuczki:

_.times(arrayLength, _.constant(null)); 

np

_.times(5, _.constant(null)); 
[null, null, null, null, null] 
+2

_.fill aż https://jsperf.com/array-with-default-values/1 –

+0

co jeśli chcę, aby wypełnić istniejącą tablicę? – DDave

4
_.fill(Array(arrayLength), null); 

np

_.fill(Array(5), null); // [ null, null, null, null, null ] 
+0

To jest szybsze niż tworzenie pętli for i wypychanie x razy null do mojej tablicy ??? –

4

Sugeruję użyciu _.fill

_.fill(Array(myArrayLength), null);` 

Wydaje się szybciej niż _.times, przynajmniej jest na Chrom.

perf porównania Zobacz tutaj: https://jsperf.com/fill-vs-times/1

+0

Powtórz odpowiedź. – TranslucentCloud

+0

To jest szybciej niż napisać pętlę i zrobić array.push. Po prostu ciekawy –