JavaMetody tablicy skryptu: Utwórz z przykładem

⚡ Inteligentne podsumowanie

JavaMetody tablicowe skryptów pozwalają programistom przechowywać, pobierać i przekształcać uporządkowane zbiory wartości za pomocą jednego obiektu. W tym artykule wyjaśniono tworzenie tablic, dostęp do indeksów, wbudowane rodziny metod, techniki iteracyjne, struktury wielowymiarowe oraz przykładowy program z oczekiwanym wynikiem.

  • 📦 Koncepcja główna: Tablica to obiekt przechowujący wiele wartości pod jedną nazwą i udostępniający każdą wartość za pomocą indeksu rozpoczynającego się od zera.
  • 🛠️. Składnia tworzenia: Preferowana jest notacja dosłowna z nawiasami kwadratowymi, natomiast konstruktor Array pozostaje dostępny dla starszego kodu.
  • Metody mutacji: polecenia push, pop, shift, unshift i splice zmieniają oryginalną tablicę i zwracają usuniętą wartość lub nową długość.
  • 🔍 Metody niemutujące: slice, concat, join, indexOf i include odczytują tablicę bez zmiany przechowywanych elementów.
  • 🔁 Rodzina iteracji: Funkcje forEach, map, filter, reduce i find stosują wywołanie zwrotne do każdego elementu i obsługują wzorce programowania funkcyjnego.
  • ⚠️ Uwaga dotycząca sortowania: Domyślne sortowanie porównuje wartości jako ciągi znaków, więc dane liczbowe wymagają jawnej funkcji porównującej.
  • 🧱 Struktury zagnieżdżone: Umieszczenie tablic wewnątrz tablic powoduje powstanie wielowymiarowej siatki adresowanej dwoma wyrażeniami indeksowymi.

JavaMetody tablicy skryptów

Co to jest tablica w JavaScenariusz?

Tablica to obiekt, w którym można przechowywać: zbiór przedmiotówTablice stają się bardzo przydatne, gdy trzeba przechowywać duże ilości danych tego samego typu. Załóżmy, że chcesz przechowywać dane 500 pracowników. Jeśli używasz zmiennych, będziesz musiał utworzyć 500 zmiennych, podczas gdy to samo możesz zrobić z pojedynczą tablicą. Dostęp do elementów w tablicy można uzyskać, odwołując się do jej… numer indeksu, a indeks pierwszego elementu tablicy jest równy zero.

W przeciwieństwie do tablic w językach ściśle typowanych, JavaTablica skryptów jest dynamiczna. Jej długość rośnie automatycznie po przypisaniu nowego elementu, a pojedyncza tablica może zawierać jednocześnie ciągi znaków, liczby, wartości logiczne, obiekty, a nawet inne tablice. Ta elastyczność sprawia, że ​​tablice są domyślnym kontenerem dla danych list zarówno w skryptach przeglądarki, jak i w kodzie po stronie serwera.

Jak utworzyć tablicę w JavaScenariusz

Możesz utworzyć tablicę w JAVASCRIPT jak podano poniżej.

var students = ["John", "Ann", "Kevin"];

Tutaj inicjujesz tablicę w momencie jej tworzenia, wartościami „John”, „Ann” i „Kevin”. Indeks „John”, „Ann” i „Kevin” wynosi odpowiednio 0, 1 i 2. Jeśli chcesz dodać więcej elementów do tablicy studentów, możesz to zrobić w następujący sposób:

students[3] = "Emma";
students[4] = "Rose";

Można również utworzyć tablicę za pomocą konstruktora Array w następujący sposób:

var students = new Array("John", "Ann", "Kevin");

OR

var students = new Array();

students[0] = "John";

students[1] = "Ann";

students[2] = "Kevin";

Jak uzyskać dostęp do elementów tablicy i je modyfikować

Każdy element znajduje się na ponumerowanej pozycji. Notacja w nawiasach kwadratowych odczytuje wartość, przypisuje nową wartość lub dodaje nowy wpis, gdy indeks jest równy bieżącej długości.

let students = ["John", "Ann", "Kevin"];

console.log(students[0]);              // John  - first element
console.log(students[students.length - 1]); // Kevin - last element

students[1] = "Anna";                // replace an existing value
students[3] = "Emma";                // append a new value

console.log(students);              // ["John", "Anna", "Kevin", "Emma"]
console.log(students.length);       // 4
console.log(students[9]);              // undefined - index does not exist

⚠️ Ostrzeżenie: Przypisanie wartości do indeksu znacznie przekraczającego bieżącą długość powoduje utworzenie rzadkiej tablicy wypełnionej pustymi slotami. Użyj push() zamiast indeksu skokowego, dzięki czemu tablica pozostaje gęsta i przewidywalna.

JavaMetody tablicy skryptów

Obiekt Array ma wiele właściwości i metod, które pomagają programistom łatwo i efektywnie obsługiwać tablice. Wartość właściwości można uzyskać, określając nazwa_tablicy.właściwość, a wynik metody, określając nazwę_tablicy.method().

  1. właściwość długości –> Jeśli chcesz poznać liczbę elementów w tablicy, możesz skorzystać z właściwości długości.
  2. własność prototypu –> Jeśli chcesz dodać nowe właściwości i metody, możesz skorzystać z właściwości prototype.
  3. metoda odwrotna –> Możesz odwrócić kolejność elementów w tablicy, stosując metodę odwrotną.
  4. metoda sortowania –> Elementy w tablicy można sortować za pomocą metody sort.
  5. metoda popowa –> Możesz usunąć ostatni element tablicy za pomocą metody pop.
  6. metoda przesunięcia –> Możesz usunąć pierwszy element tablicy używając metody shift.
  7. metoda pchania –> Możesz dodać wartość jako ostatni element tablicy.

Poniższa tabela referencyjna grupuje najczęściej używane metody, dzięki czemu można na pierwszy rzut oka sprawdzić, które z nich zmieniają oryginalną tablicę, a które zwracają nową wartość.

Metoda wykonania Cel Zwroty Zmiany oryginalnej tablicy
Pchać() Dodaj jeden lub więcej elementów na końcu Nowa długość Tak
Muzyka pop() Usuń ostatni element Usunięty element Tak
cofnij przesunięcie () Dodaj jeden lub więcej elementów z przodu Nowa długość Tak
Zmiana() Usuń pierwszy element Usunięty element Tak
splatać() Wstawianie lub usuwanie elementów w dowolnym miejscu Tablica usuniętych elementów Tak
sortować() Zamów przedmioty Posortowana tablica Tak
odwrócić() Odwróć kolejność elementów Odwrócona tablica Tak
plasterek() Skopiuj sekcję tablicy Nowa tablica Nie
konkat() Połącz dwie lub więcej tablic Nowa tablica Nie
Przystąp() Połącz elementy w ciąg sznur Nie
indeks() Znajdź pozycję wartości Indeks lub -1 Nie
zawiera () Sprawdź, czy wartość istnieje prawda czy fałsz Nie

Dodawanie i usuwanie elementów

let fruits = ["apple", "banana"];

fruits.push("cherry");      // ["apple", "banana", "cherry"]
fruits.unshift("mango");    // ["mango", "apple", "banana", "cherry"]
fruits.pop();                // ["mango", "apple", "banana"]
fruits.shift();              // ["apple", "banana"]

// splice(startIndex, deleteCount, ...itemsToInsert)
fruits.splice(1, 0, "kiwi"); // ["apple", "kiwi", "banana"]
console.log(fruits);

Wyszukiwanie, kopiowanie i łączenie

let colors = ["red", "green", "blue", "green"];

console.log(colors.indexOf("green"));     // 1  - first match only
console.log(colors.lastIndexOf("green")); // 3
console.log(colors.includes("pink"));     // false
console.log(colors.slice(1, 3));         // ["green", "blue"]
console.log(colors.join(" | "));         // red | green | blue | green
console.log(colors.concat(["black"]));   // new array, colors unchanged

Metody iteracji: forEach, map, filter i reduce

Nowoczesne technologie JavaSkrypt preferuje metody sterowane wywołaniem zwrotnym nad ręcznymi pętlami indeksowania, ponieważ cel operacji jest określony bezpośrednio w nazwie metody.

const scores = [45, 72, 88, 31, 95];

scores.forEach(s => console.log(s));   // prints each score

const doubled = scores.map(s => s * 2);  // [90, 144, 176, 62, 190]
const passed  = scores.filter(s => s >= 50); // [72, 88, 95]
const total   = scores.reduce((sum, s) => sum + s, 0); // 331
const first   = scores.find(s => s > 80);   // 88

console.log(doubled, passed, total, first);

💡 Wskazówka: Domyślny sort() konwertuje elementy na ciągi znaków, więc [10, 9, 100].sort() powraca [10, 100, 9]. Przekaż komparator taki jak sort((a, b) => a - b) aby poprawnie sortować liczby.

JavaPrzykład tablicy skryptu ze źródłem Code

Poniższy skrypt tworzy tablicę uczniów, dodaje niestandardową metodę wyświetlania za pomocą właściwości prototype, a następnie demonstruje sekwencję operacji: długość, sortowanie, odwracanie, wysuwanie i wstawianie. Spróbuj sam:

<html>
<head>
	<title>Arrays!!!</title>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		Array.prototype.displayItems=function(){
			for (i=0;i<this.length;i++){
				document.write(this[i] + "<br />");
			}
		}
		document.write("students array<br />");
		students.displayItems();
		document.write("<br />The number of items in students array is " + students.length + "<br />");
		document.write("<br />The SORTED students array<br />");
		students.sort();
		students.displayItems();
		document.write("<br />The REVERSED students array<br />");
		students.reverse();
		students.displayItems();
		document.write("<br />THE students array after REMOVING the LAST item<br />");
		students.pop();
		students.displayItems();
        document.write("<br />THE students array after PUSH<br />");
        students.push("New Stuff");
		students.displayItems();
	</script>
</head>
<body>
</body>
</html>

Oczekiwany wynik:

students array
John
Ann
Aaron
Edwin
Elizabeth

The number of items in students array is 5

The SORTED students array
Aaron
Ann
Edwin
Elizabeth
John

The REVERSED students array
John
Elizabeth
Edwin
Ann
Aaron

THE students array after REMOVING the LAST item
John
Elizabeth
Edwin
Ann

THE students array after PUSH
John
Elizabeth
Edwin
Ann
New Stuff

Zauważ, że sortowanie umieszcza „Aaron” przed „Ann”, ponieważ wielkie i małe litery są porównywane według kodów znaków. Zauważ również, że pop usunął „Aaron” z odwróconej tablicy, co potwierdza, że ​​zarówno sortowanie, jak i odwrócenie zmieniły oryginalną tablicę w miejscu.

Jak przejść przez pętlę JavaTablica skryptów

Cztery toaletyping Dostępne są style, z których każdy pasuje do innej sytuacji. Klasyczna pętla for daje pełną kontrolę nad indeksem, for…of odczytuje wartości bezpośrednio, forEach jasno wyraża intencję, a for…in powinna być zarezerwowana dla właściwości obiektów.

const cities = ["Paris", "Tokyo", "Cairo"];

// 1. Classic for loop - index is available
for (let i = 0; i < cities.length; i++) {
    console.log(i + ": " + cities[i]);
}

// 2. for...of loop - value is available
for (const city of cities) {
    console.log(city);
}

// 3. forEach with index parameter
cities.forEach((city, index) => console.log(index, city));

// 4. entries() when both index and value are needed
for (const [index, city] of cities.entries()) {
    console.log(index, city);
}

Bardziej szczegółowe omówienie składni pętli, w tym while i do…while, znajduje się w artykule na jak używać pętli w JavaScenariusz.

Tablice wielowymiarowe w JavaScenariusz

JavaSkrypt nie ma dedykowanego typu macierzy. Siatka to po prostu tablica, której elementy same w sobie są tablicami, a do dotarcia do pojedynczej komórki używane są dwa wyrażenia indeksowe.

const matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

console.log(matrix[1][2]); // 6  - row index 1, column index 2

for (const row of matrix) {
    console.log(row.join(" "));
}

// flatten a nested array into a single level
console.log(matrix.flat()); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

Wyjście:

6
1 2 3
4 5 6
7 8 9
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Tablice pojawiają się w niemal każdym skrypcie praktycznym, od walidacji formularzy po renderowanie danych. Kontynuuj praktyczny JavaPrzykłady kodu skryptu, przejrzeć JavaCiągi skryptów do obsługi tekstu i przeczytaj o wewnętrzny i zewnętrzny JavaScenariusz aby zdecydować, gdzie te skrypty powinny znaleźć się na stronie. Programiści, którzy chcą, aby zawartość tablicy była sprawdzana pod kątem statycznego typu, mogą przejść do TypeScript Tutorial.

FAQ

Tablica przechowuje uporządkowaną listę adresowaną za pomocą indeksów numerycznych, podczas gdy obiekt przechowuje nazwane właściwości bez zagwarantowanej kolejności. Tablice dziedziczą metody list, takie jak push i map, których nie oferują zwykłe obiekty.

Użyj Array.isArray(value), która zwraca wartość true tylko dla tablic. Operator typeof jest tutaj zawodny, ponieważ zwraca wartość „object” zarówno dla tablic, dat, jak i wartości null.

Użyj składni rozproszenia […original] lub original.slice(). Zwykłe przypisanie kopiuje tylko referencję, więc edycje w którejkolwiek ze zmiennych wpłynęłyby na tę samą tablicę bazową.

Znajdź pozycję za pomocą indexOf i przekaż ją do splice, na przykład arr.splice(arr.indexOf(“Ann”), 1). Alternatywnie, filter zwróci nową tablicę, która wykluczy niechcianą wartość.

Tablice przechowują historie wiadomości czatu, osadzone wektory i strumieniowane tokeny modeli w przeglądarce. Metody takie jak „map” i „reduce” przekształcają te zbiory przed wysłaniem ich do API lub renderowaniem.

Tak, i zazwyczaj tak się dzieje. Należy jednak sprawdzić, czy sugerowana metoda modyfikuje oryginalną tablicę, ponieważ nieoczekiwane łączenie lub sortowanie może uszkodzić stan w komponencie React lub Vue.

Podsumuj ten post następująco: