JavaScript массивы используются для хранения нескольких значений в одной переменной.
Отображение Массивы
В этом уроке мы будем использовать скрипт для отображения массивов внутри <p> элемента с id="demo" :
пример
<p id="demo"></p>
<script>
var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars;
</script>
Первая строка (в сценарии) создает массив с именем машины.
Вторая строка "находит" элемент с id="demo" , и "displays" массив в "innerHTML" из него .;
Попробуй сам
Создать массив и присвоить значения к нему:
Пробелы и разрывы строк не важны. Объявление может занимать несколько строк:
Никогда не поставить запятую после последнего элемента (например , "BMW" ,).
Эффект непоследовательным во всех браузерах.
Что такое массив?
Массив является специальная переменная, которая может содержать более одного значения одновременно.
Если у вас есть список элементов (список имен автомобиля, например), хранение автомобилей в отдельных переменных может выглядеть следующим образом:
var car1 = "Saab";
var car2 = "Volvo";
var car3 = "BMW";
Однако, что если вы хотите, чтобы перебрать автомобилей и найти конкретный один? А что, если бы вы не 3 машины, а 300?
Решение представляет собой массив!
Массив может содержать множество значений под одним именем, и вы можете получить доступ к значениям, обращаясь к номеру индекса.
Создание массива
Используя массив буквальный это самый простой способ для создания массива JavaScript.
Синтаксис:
var array-name = [ item1 , item2 , ...];
Пример:
var cars = ["Saab", "Volvo", "BMW"];
Использование нового JavaScript ключевых слов
Следующий пример создает массив, и присваивает значения к нему:
Эти два примера выше, сделать то же самое. Там нет необходимости использовать new Array() .
Для простоты, читабельности и скорости выполнения, используйте первый (массив буквальный метод).
Доступ к элементам массива
Вы обращаетесь к элементу массива, обращаясь кномеру индекса.
Это утверждение обращается значение первого элемента в автомобилях:
var
name = cars[0];
Это утверждение изменяет первый элемент в автомобилях:
cars[0] = "Opel";
[0] является первым элементом в массиве. [1] является вторым. Массив индексов начинается с 0.
Вы можете иметь различные объекты в одном массиве
Переменные JavaScript могут быть объектами. Массивы являются специальные виды объектов.
Из-за этого, вы можете иметь переменные различных типов в одном массиве.
Вы можете иметь объекты в массиве. Вы можете иметь функции в массиве. Вы можете иметь массивы в массиве:
myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;
Массивы являются объектами
Массивы представляют собой особый тип объектов. typeof оператор в JavaScript возвращает "object" для массивов.
Но, JavaScript массивы лучше всего можно описать как массивы.
Массивы используют numbers для доступа к его "elements" . В этом примере, person[0] возвращает John :
Объекты используют имена для доступа к его "членов". В этом примере, person.firstName возвращает John :
Массив Свойства и методы
Реальная сила JavaScript массивов являются встроенные свойства и методы массива:
Примеры
var x = cars.length;
// The length property returns the number of elements in cars
var y = cars.sort();
// The sort() method sort cars in alphabetical order
Методы массивов рассматриваются в следующей главе.
Длина недвижимости
length свойство массива возвращает длину массива (количество элементов массива).
пример
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length; // the length of fruits is 4
Попробуй сам " Свойство длина всегда больше на единицу наибольшего индекса массива.
Добавление элементов массива
Самый простой способ, чтобы добавить новый элемент в массив используется метод кнопочный:
пример
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Lemon"); // adds a new element (Lemon) to fruits
Попробуй сам " Новый элемент также может быть добавлен в массив , используя length свойства:
пример
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Lemon"; // adds a new element (Lemon) to fruits
Попробуй сам " ВНИМАНИЕ!
Добавление элементов с высокими показателями могут создавать неопределенные "holes" в массиве:
пример
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[10] = "Lemon"; // adds a new element (Lemon) to fruits
Попробуй сам " Looping элементов массива
Лучший способ перебрать массив, использует "for" цикла:
пример
var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
text += "<li>" + fruits[i] + "</li>";
}
Попробуй сам " Ассоциативные массивы
Многие языки программирования поддерживают массивы с именованными индексами.
Массивы с именованными индексами называются ассоциативными массивами (или хэшей).
JavaScript не поддерживает массивы с именованными индексами.
В JavaScript массивы всегда использовать пронумерованные индексы.
пример
var person = [];
person[0] = "John";
person[1] = "Doe";
person[2] = 46;
var x = person.length;
// person.length will return 3
var y = person[0];
// person[0] will return "John"
Попробуй сам " ВНИМАНИЕ !!
Если вы используете именованный индекс, JavaScript будет переопределить массив стандартного объекта.
После этого, все методы и свойства массива будут выдавать неправильные результаты.
Пример:
var person = [];
person["firstName"] = "John";
person["lastName"] = "Doe";
person["age"] = 46;
var x = person.length; // person.length will
return 0
var y = person[0];
// person[0] will return undefined
Попробуй сам " Разница между массивов и объектов
В JavaScript массивы используют пронумерованные индексы.
В JavaScript объекты использовать именованные индексы.
Массивы представляют собой особый вид объектов, с пронумерованными индексами.
При использовании массивов. Когда использовать объекты.
- JavaScript не поддерживает ассоциативные массивы.
- Вы должны использовать объекты , когда вы хотите , чтобы имена элементов , чтобы быть строками (текст).
- Вы должны использовать массивы , когда вы хотите , чтобы имена элементов , чтобы быть числами.
Избегайте new Array()
Там нет необходимости использовать встроенный конструктор массива в JavaScript в new Array() .
Используйте [] вместо этого.
Эти две разные заявления как создать новый пустой массив с именами точек:
var points = new Array();
// Bad
var points = [];
// Good
Эти две разные заявления как создать новый массив, содержащий 6 чисел:
var points = new Array(40, 100, 1, 5, 25, 10) // Bad
var points = [40, 100, 1, 5, 25, 10];
// Good
Попробуй сам " new ключевое слово только усложняет код. Он может также производить некоторые неожиданные результаты:
var points = new Array(40, 100); // Creates an array with two elements (40 and 100)
Что делать, если я удалить один из элементов?
var points = new Array(40); // Creates an array with 40 undefined elements !!!!!
Попробуй сам " Как распознать массив
Общий вопрос: Как я могу узнать, является ли переменная массивом?
Проблема заключается в том, что оператор JavaScript typeof возвращает "объект":
var fruits = ["Banana", "Orange", "Apple", "Mango"];
typeof fruits; // returns object
Попробуй сам " Отдача оператор TypeOf объект, так как массив JavaScript является объектом.
Решение 1:
Для решения этой проблемы ECMAScript 5 определяет новый метод Array.isArray() :
Array.isArray(fruits); // returns true
Попробуй сам " Проблема с этим решением является то , что в ECMAScript 5 не поддерживается в старых браузерах.
Решение 2:
Чтобы решить эту проблему , вы можете создать свой собственный isArray() функции:
function isArray(x) {
return
x.constructor.toString().indexOf("Array") > -1;
}
Попробуй сам " Выше функция всегда возвращает истину, если аргумент является массивом.
Или точнее: он возвращает истину, если объект-прототип содержит слово "Array".
Решение 3:
instanceof оператор возвращает истину , если объект создается с помощью данного конструктора:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits instanceof Array // returns true
Попробуй сам " Проверьте себя с упражнениями!
Упражнение 1 » Упражнение 2» Упражнение 3 » Упражнение 4» Упражнение 5 »