W JavaScript, jeśli ustawisz tablicę na rozmiar 5 (var foo = new Array(5);
), czy jest to tylko rozmiar początkowy? Czy możesz rozwinąć liczbę elementów po ich utworzeniu. Czy można zrobić coś takiego - arr = new Array()
, a następnie po prostu przypisać elementy jeden po drugim? Z góry dzięki :-)Jak działają rozmiary tablic w JavaScript
Odpowiedz
Tak jest to tylko początkowy rozmiar, a to nie jest wymagane. Jeśli nie użyjesz jednego numeru, możesz go natychmiast wypełnić.
Powszechniejsze jest również stosowanie prostszej składni []
.
var arr = ['something', 34, 'hello'];
Można ustawić (lub wymienić) konkretnego indeksu przez korzystających nawiasach:
arr[0] = "I'm here replacing whatever your first item was";
można dodać na końcu za pomocą przycisku:
arr.push('add me');
nie może być szybsza wydajność w niektórych przeglądarkach, jeśli robisz to w ten sposób:
arr[arr.length] = 'add me';
Możesz dodać coś w dowolnym indeksie.
można usunąć element całkowicie za pomocą spawów
arr.splice(0, 1); // remove first item in the array (start at index 0, with 1 being removed)
Wystarczy popatrzeć na http://www.w3schools.com/js/js_obj_array.asp
var myCars=new Array(); // regular array (add an optional integer
myCars[0]="Saab"; // argument to control array's size)
myCars[1]="Volvo";
myCars[2]="BMW";
Kiedy dać nową tablicę wyraźny wielkości w javascript (przy użyciu new Array(5)
), należy wypełnić każdy indeks o wartości undefined
. Powszechnie uważa się lepszą praktykę instancji przy użyciu tablicy dosłownego []
wyrażenie:
var arr = [];
Następnie można wcisnąć nowych elementów za pomocą push()
var arr = [];
arr.push('first value'):
arr.push('second value'):
Sprawdź dokumentację Array MDC aby uzyskać więcej informacji: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array
Rzeczywiste ly przy pisaniu 'new Array (5)', każdy indeks jest nadal 'niezdefiniowany' (który różni się od' null'). To bardziej przypomina zrobienie 'var arr = []; arr.length = 5; '. –
Ah tak, nieokreślone zamiast zerowe. Poprawi się. –
Sprawdź the documentation for Array, ale prosta odpowiedź na to pytanie to tak.
var arr5 = new Array(1, 2, 3, 4, 5); // an array with initial 5 elements
var arr = new Array(); // an array without initial
Można również użyć literałów tablicowych:
var arr5 = [1, 2, 3, 4, 5];
var arr = [];
Po prostu chciałem podkreślić, że wersja 'new Array (5)' jest ** nie ** identyczna z '[1, 2, 3, 4, 5]'! –
@Felix, masz absolutną rację. Moje dni Java zostały uruchomione. Zaktualizowałem moją odpowiedź. –
Tam kilka sposobów, aby zadeklarować i zadane wartości w tablicy.
pierwsze jak to, co chcesz zrobić,
var myarr = new Array();
myarr[0] = 'element1';
myarr[1] = 'element2';
myarr[2] = 'element3';
Drugim sposobem jest zdefiniowanie im
var myarr =new Array("element1","element2","element3");
a trzeci jest podobny do drugiego
var myarr =["element1","element2","element3"];
Można również sprawdzić out https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array, aby uzyskać nieco więcej informacji na temat korzystania z tablic, jak również. Możesz użyć funkcji push i pop, jeśli chcesz.
Jeśli używasz jquery lub mootools mają również wbudowane funkcje do wykonywania na tablicach, na przykład http://api.jquery.com/jQuery.each/.
Tablice są dynamiczne w JavaScript. Nie musisz inicjować ich z określoną długością. W rzeczywistości należy użyć dosłownego zapisu []
powodu niejednoznaczności w Array
konstruktora:
Jeśli zdać tylko jeden parametr do Array
będzie ustawić długość tablicy do tego parametru. Jeśli przekażesz więcej niż jeden parametr, elementy te zostaną dodane do tablicy.
W jaki sposób określa się rozmiar tablicy?
Rozmiar tablicy jest najwyższym indeksem +1. Może to być dość mylące. Rozważ to:
var arr = [];
arr[41] = 'The answer?';
console.log(arr); // [undefined, undefined, ..., 'The answer?']
console.log(arr.length) // 42
Można nawet ustawić długość samodzielnie przez przypisanie numeru do .length
:
arr.length = 99;
Jeśli teraz dodać nowy element, używając arr.push()
będzie uzyskać indeks 100
i długość wzrośnie. Za każdym razem, gdy dodajesz element do tablicy za pomocą indeksu, testowane jest, czy arr.length
jest mniejsze niż indeks i odpowiednio aktualizowane. Ale nie zmniejsza się.
W rzeczywistości to, co robi var arr = new Array(5)
, ustawia długość tablicy na 5
. Nic więcej.
Aby uzyskać więcej informacji na temat tworzenia i wypełniania tablice, proponuję przeczytać o nim w MDC JavaScript Guide.
- 1. Rozmiary dynamicznych tablic Java?
- 2. Jak działają odniesienia konstruktora tablic Java 8?
- 3. Jak działają obietnice w JavaScript?
- 4. Jakie są te dziwne rozmiary tablic [*] i [statyczne] w C99?
- 5. tworzenie tablic obiektów w javascript
- 6. Parsowanie tablic javascript w PHP
- 7. Jak działają szablony silników w JavaScript?
- 8. JavaScript wpisane tablic "na drucie"
- 9. Jak działają wszystkie te biblioteki JavaScript OpenID?
- 10. Łączenie tablic indeksowanych ciągów w JavaScript
- 11. Oblicz przecięcia dwóch tablic w JavaScript
- 12. Jak znaleźć najdłuższy tablicę w tablicę tablic w JavaScript
- 13. Dlaczego te instrukcje działają inaczej w JavaScript?
- 14. Strange JavaScript w CodePen z humongous tablic
- 15. Wydajny sposób filtrowania tablic w javascript
- 16. Animacje JavaScript nie działają w kolejności?
- 17. W JavaScript, jak uniknąć NaN przy dodawaniu tablic
- 18. Łączenie tablic tablic w Coffeescript
- 19. użyciu JavaScript, aby posortować tablicę tablic numerycznych
- 20. Rozmiary sprzętu - zasady Thumb
- 21. Tworzenie obiektu JavaScript z dwóch tablic
- 22. Podsystemy wprowadzania nazw tablic JavaScript (nazwa [sometext])
- 23. Android Camera2 Rozmiary wyjściowe
- 24. Rozmiary typów danych dla ActionScript 3
- 25. Rozmiary grup roboczych
- 26. UIBarButtonItem rozmiary różnią się
- 27. Rozmiary ekranu w stylu android w pikselach?
- 28. Android Widget bitmapy Rozmiary
- 29. Jak flagi działają w C?
- 30. Jak działają konsole w Haskell:
Czy [] jest jak anonimowa tablica? – rubixibuc
@rubixibuc: Nie, jest to literka tablicowa. –
Jaka jest różnica między tablicą literalną a anonimową? (sry, jeśli to głupie pytanie: - /) – rubixibuc