2016-01-22 23 views
21

w javascript, jak bym utworzyć pustą tablicę danego rozmiaru kodujavascript utworzyć pustą tablicę danego rozmiaru

Sudo:

X = 3; 
cratearray(myarray, X, ""); 

wyjściowa:

myarray = ["","",""] 
+1

Prawdopodobnie użyjesz [* Array.prototype.fill *] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/fill). – RobG

+0

Prawdopodobny duplikat [domyślne wartości tablic] (https://stackoverflow.com/questions/2044760/default-array-values) –

+0

Powiązany post [tutaj] (https://stackoverflow.com/q/4852017/465053). – RBT

Odpowiedz

17
var arr = new Array(5); 
console.log(arr.length) // 5 
+3

To nie tworzy żadnych członków, tworzy pustą tablicę o długości 5. Odpowiednikiem literału jest '[,,,,,]'. – RobG

+1

Program OP zapytał 'in javascript, w jaki sposób utworzyć pustą tablicę o danym rozmiarze '. To rozwiązuje ten problem. – mariocatch

+2

PO podał przykład "puste". – RobG

9

spróbuj while pętla, Array.prototype.push()

var myArray = [], X = 3; 
while (myArray.length < X) { 
    myArray.push("") 
} 

Alternatywnie, przy użyciu Array.prototype.fill()

var myArray = Array(3).fill(""); 
-1

chciałbym to zrobić:

function emptyArray(length){ 
    var a = []; 
    for(var i=0,l=length; i<l; i++){ 
    a.push(''); 
    } 
    return a; 
} 
var empty10 = emptyArray(10); 

jeśli chcesz pustych ciągów, inaczej

var empty10 = new Array(10); 

uczyni prawdziwie pustą tablicę.

4

Jeśli chcesz pusta tablica undefined elementów, można po prostu zrobić

var whatever = new Array(5); 

byłoby to daje

[undefined, undefined, undefined, undefined, undefined] 

a następnie, jeśli chcesz to być wypełnione pustymi strunami, ty mógł wykonać

whatever.fill(''); 

który dałby Ci

["", "", "", "", ""] 

A jeśli chcesz zrobić to w jednym wierszu:

var whatever = Array(5).fill(''); 
41

1) Aby utworzyć nową tablicę, która Ci nie można iteracyjne nad, można użyć konstruktora array:

Array(100) lub new Array(100)


2) Można utworzyć nową tablicę, która można iterować nad jak poniżej:

a) Wszystkie wersje JavaScript

  • tablicy.zastosowanie: Array.apply(null, Array(100))

b) Od ES6 wersji JavaScript

  • operator destructuring: [...Array(100)]
  • Array.prototype.fill Array(100).fill(undefined)
  • Array.prototype.from Array.from({ length: 100 })

Możesz mapować te tablice jak poniżej.

  • Array(4).fill(null).map((u, i) => i)[0, 1, 2, 3]

  • [...Array(4)].map((u, i) => i)[0, 1, 2, 3]

  • Array.apply(null, Array(4)).map((u, i) => i)[0, 1, 2, 3]

  • Array.from({ length: 4 }).map((u, i) => i)[0, 1, 2, 3]

+0

Masz na myśli, Array.prototype.fill (> = ES5), prawda? –

+1

Array.prototype.fill (> = ES6) https://kangax.github.io/compat-table/es6/#test-Array.prototype_methods_Array.prototype.fill_a_href=_https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/Array/fill_title = _MDN_documentation_img_src = _ ../mdn.png_alt = _MDN_ (Mozilla_Development_Network) _logo_width = _15_height = _13 _/_/a_nbsp; – ptim

+2

Oświecenie dnia - kiedy wspominasz w części (A), że nowo utworzona tablica przy użyciu składni konstruktora nie jest nawet iterowalna. JavaScript naprawdę zaskakuje czasami. – RBT

4

wykorzystujemy Array.from({length: 500}) w 2017

+0

Doskonałe rozwiązanie! –

1

w 2018 i od tego czasu użyjemy [...Array(500)] do tego celu.

Powiązane problemy