JavaМетоди масиву сценаріїв: Створення за допомогою прикладу

⚡ Розумний підсумок

JavaМетоди масивів скриптів дозволяють розробникам зберігати, отримувати та перетворювати впорядковані колекції значень за допомогою одного об'єкта. У цій статті пояснюється створення масивів, доступ до індексів, вбудовані сімейства методів, методи ітерації, багатовимірні структури та приклад, що запускається, з очікуваним результатом.

  • 📦 Основна концепція: Масив — це об'єкт, який містить багато значень під одним іменем та надає доступ до кожного значення через індекс, що починається з нуля.
  • 🛠️ Синтаксис створення: Бажано використовувати літеральний запис у квадратних дужках, тоді як конструктор масивів залишається доступним для застарілого коду.
  • ➕ Методи мутації: Команди push, pop, shift, unshift та splice змінюють початковий масив і повертають або видалене значення, або нову довжину.
  • 🔍 Немутаційні методи: slice, concat, join, indexOf та includes зчитують масив без зміни збережених елементів.
  • 🔁 Сімейство ітерацій: forEach, map, filter, reduce та find застосовують зворотний виклик до кожного елемента та підтримують шаблони функціонального програмування.
  • ⚠️ Увага щодо сортування: Сортування за замовчуванням порівнює значення як рядки, тому числові дані потребують явної функції порівняння.
  • 🧱 Вкладені структури: Розміщення масивів всередині масивів створює багатовимірну сітку, адресовану двома індексними виразами.

JavaМетоди масивів сценаріїв

Що таке масив у JavaСценарій?

Масив — це об’єкт, який може зберігати a колекція предметівМасиви стають справді корисними, коли вам потрібно зберігати великі обсяги даних одного типу. Припустимо, ви хочете зберегти інформацію про 500 співробітників. Якщо ви використовуєте змінні, вам доведеться створити 500 змінних, тоді як ви можете зробити те саме з одним масивом. Ви можете отримати доступ до елементів масиву, звернувшись до його номер індексу, а індекс першого елемента масиву дорівнює нулю.

На відміну від масивів у строго типізованих мовах, JavaМасив скриптів є динамічним. Його довжина автоматично збільшується, коли присвоюється новий елемент, і один масив може одночасно містити рядки, числа, логічні значення, об'єкти та навіть інші масиви. Ця гнучкість робить масиви контейнером за замовчуванням для даних списків як у скриптах браузера, так і в коді на стороні сервера.

Як створити масив у JavaScript

Ви можете створити масив у JavaScript як зазначено нижче.

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

Тут ви ініціалізуєте свій масив, коли він буде створений зі значеннями «Джон», «Енн» і «Кевін». Індекс «Джон», «Енн» і «Кевін» дорівнює 0, 1 і 2 відповідно. Якщо ви хочете додати більше елементів до масиву студентів, ви можете зробити це так:

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

Ви також можете створити масив за допомогою конструктора Array ось так:

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

OR

var students = new Array();

students[0] = "John";

students[1] = "Ann";

students[2] = "Kevin";

Як отримати доступ до елементів масиву та змінити їх

Кожен елемент знаходиться в пронумерованій позиції. Нотація у квадратних дужках зчитує значення, присвоює нове значення або додає новий запис, коли індекс дорівнює поточній довжині.

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

⚠️ Попередження: Присвоєння значення індексу, що значно перевищує поточну довжину, створює розріджений масив, заповнений порожніми слотами. Використовуйте push() замість стрибкового індексу, щоб масив залишався щільним та передбачуваним.

JavaМетоди масивів сценаріїв

Об’єкт Array має багато властивостей і методів, які допомагають розробникам легко й ефективно працювати з масивами. Ви можете отримати значення властивості, вказавши arrayname.property, а вихід методу, вказавши arrayname.method().

  1. майно довжини –> Якщо ви хочете знати кількість елементів у масиві, ви можете скористатися властивістю length.
  2. властивість прототипу –> Якщо ви хочете додати нові властивості та методи, ви можете використати властивість prototype.
  3. зворотний спосіб –> Ви можете змінити порядок елементів у масиві за допомогою зворотного методу.
  4. метод сортування –> Ви можете сортувати елементи масиву за допомогою методу sort.
  5. поп-метод –> Ви можете видалити останній елемент масиву за допомогою методу pop.
  6. вахтовий метод –> Ви можете видалити перший елемент масиву за допомогою методу shift.
  7. метод натискання –> Ви можете додати значення як останній елемент масиву.

У довідковій таблиці нижче згруповано найчастіше використовувані методи, щоб ви могли одразу побачити, які з них змінюють початковий масив, а які повертають нове значення.

Метод Мета Повернення Змінює оригінальний масив
натискати() Додайте один або декілька елементів у кінець Нова довжина Так
поп () Видалити останній елемент Видалений елемент Так
скасувати зсув() Додати один або кілька елементів на початок сторінки Нова довжина Так
зсув() Видалити перший елемент Видалений елемент Так
зрощення () Вставка або видалення елементів у будь-якій позиції Масив видалених елементів Так
сортувати () Замовити товари Відсортований масив Так
зворотний() Змінити порядок елементів Зворотний масив Так
фрагмент () Копіювання частини масиву Новий масив Немає
concat () Об'єднання двох або більше масивів Новий масив Немає
приєднатися () Об'єднати елементи в рядок рядок Немає
indexOf() Знайти позицію значення Індекс або -1 Немає
включає() Перевірка існування значення Правда чи неправда Немає

Додавання та видалення елементів

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);

Пошук, копіювання та об'єднання

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

Методи ітерації: forEach, map, filter та reduce

Modern JavaСкрипт надає перевагу методам, керованим зворотними викликами, над ручними циклами індексування, оскільки мета операції вказана безпосередньо в назві методу.

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);

💡 Порада: За умовчанням sort() перетворює елементи на рядки, тому [10, 9, 100].sort() Умови повернення [10, 100, 9]Передайте компаратор, такий як sort((a, b) => a - b) правильно сортувати числа.

JavaПриклад масиву скриптів з вихідним кодом Code

Наведений нижче скрипт створює масив students, додає користувацький метод відображення через властивість prototype, а потім демонструє послідовність дій Length, Sort, Reverse, Pop та Push. Спробуйте самі:

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

Очікуваний результат:

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

Зверніть увагу, що sort розміщує «Aaron» перед «Ann», оскільки великі та малі літери порівнюються за їхніми кодами символів. Також зверніть увагу, що pop видалив «Aaron» з оберненого масиву, що підтверджує, що і sort, і reverse змінили початковий масив на місці.

Як пройти через цикл JavaМасив скриптів

Чотири туалетиping Доступні стилі, кожен з яких підходить для різних ситуацій. Класичний цикл for надає повний контроль над індексом, for…of зчитує значення безпосередньо, forEach чітко виражає намір, а for…in слід резервувати для властивостей об'єкта.

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);
}

Глибший розгляд синтаксису циклів, включаючи while та do…while, наведено у статті про як використовувати цикли в JavaScript.

Багатовимірні масиви в JavaScript

JavaСкрипт не має спеціального типу матриці. Сітка — це просто масив, елементи якого самі є масивами, а для досягнення однієї комірки використовуються два індексні вирази.

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]

вихід:

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

Масиви зустрічаються майже в кожному практичному скрипті, від перевірки форм до рендерингу даних. Продовжуйте з практичний JavaПриклади коду скриптів, огляд JavaРядки скриптів для обробки тексту та прочитайте про внутрішні та зовнішні JavaScript щоб вирішити, де ці скрипти належать на сторінці. Розробники, яким потрібна статична перевірка типів для вмісту масиву, можуть перейти до TypeScript підручник.

Поширені запитання

Масив зберігає впорядкований список, адресований числовими індексами, тоді як об'єкт зберігає іменовані властивості у негарантованому порядку. Масиви успадковують методи списків, такі як push та map, яких прості об'єкти не надають.

Використовуйте Array.isArray(value), який повертає true лише для масивів. Оператор typeof тут ненадійний, оскільки він повертає «об'єкт» як для масивів, так і для дат та значення null.

Використовуйте синтаксис розгортання […original] або original.slice(). Просте присвоєння копіює лише посилання, тому редагування через будь-яку змінну вплине на той самий базовий масив.

Знайдіть позицію за допомогою indexOf та передайте її до splice, наприклад, arr.splice(arr.indexOf(“Ann”), 1). Або ж filter повертає новий масив, який виключає небажане значення.

Масиви зберігають історії повідомлень чату, вектори вбудовування та потокові токени моделей у браузері. Такі методи, як map та reduce, змінюють форму цих колекцій перед їх надсиланням до API або рендерингом.

Так, і зазвичай вони це роблять. Все ж перевірте, чи запропонований метод змінює оригінальний масив, оскільки неочікуване сплайсування або сортування може пошкодити стан компонента React або Vue.

Підсумуйте цей пост за допомогою: