1. Понять массивы
Массив - это набор определенных типов данных, а типы данных могут быть целыми числами, строками или даже объектами.
JavaScript не поддерживает многомерные массивы, но поскольку массивы могут содержать объекты (массивы также являются объектами), массивы могут достигать функций, аналогичных многомерным массивам, гнездовывая друг друга.
1.1 Определение массива
Объявить массив с 10 элементами:
Кода кода следующая: var a = new Array (10);
В настоящее время пространство памяти было открыто для A, содержащего 10 элементов, и вызвано с помощью имени массива плюс [spist], например, A [2], но элемент не инициализируется в настоящее время, и вызов вернется неопределенным.
Следующий код определяет массив переменных и назначает значения.
Кода -копия выглядит следующим образом:
var a = new Array ();
a [0] = 10;
a [1] = "aaa";
a [2] = 12,6;
Как упомянуто выше, объекты могут быть помещены в массив, например, следующий код:
Кода -копия выглядит следующим образом:
var a = new Array ();
a [0] = true;
a [1] = document.getElementById ("text");
a [2] = {x: 11, y: 22};
a [3] = new Array ();
Массивы также могут быть назначены непосредственно при создании, например:
Кода -копия выглядит следующим образом:
var a = новый массив (1, 2, 3, 4, 5);
var b = [1, 2, 3, 4, 5];
A и B являются массивами, но B использует неявное объявление и создает другой экземпляр. В настоящее время, если используется оповещение (a == b), будет выскочено ложное
1.2 многомерный массив
Фактически, JavaScript не поддерживает многомерные массивы. В ASP вы можете использовать DIM A (10,3) для определения многомерных массивов. В JavaScript, если вы используете VAR A = новый массив (10,3), вы сообщите об ошибке.
Но, как упоминалось ранее, массив может содержать объекты, поэтому элемент в массиве может быть объявлен как массив, например:
Кода -копия выглядит следующим образом:
var a = new Array ();
a [0] = new Array ();
a [0] [0] = 1;
оповещение (a [0] [0]); // pop 1
Присвоение значения при объявлении
Кода -копия выглядит следующим образом:
var a = новый массив ([1,2,3], [4,5,6], [7,8,9]);
var b = [[1,2,3], [4,5,6], [7,8,9]];
Тот же эффект является: используется обычная экземпляра, B является неявным объявлением, и результатом является многомерный массив.
1.3 Массивные литералы
Я действительно не знаю, как это называется на китайском, текстовых массивах?
Говоря о массивах, мы должны поговорить о литералах массива. Массивы на самом деле являются специальными объектами. Объекты обладают уникальными свойствами и методами. Значения и вызовы получаются с помощью имен объектов, атрибутов, объектов и методов (), в то время как массивы используют подписки для получения значений. Массивные литералы очень похожи на массивы, и они представляют собой коллекции определенных типов данных. Тем не менее, массивные литералы в основном являются объектом, объявления и вызовы отличаются от массивов:
Кода -копия выглядит следующим образом:
var aa = new Object ();
aa.x = "cat";
aa.y = "Солнечный";
оповещение (aa.x); // всплывающая кошка
Создайте простой объект. Общий звонок через AA.X. Если он рассматривается как литералы массива, кошка появится с оповещением (AA ["x"])
Кода -копия выглядит следующим образом:
var a = {x: "cat", y: "sunny"};
предупреждение (["y"]); // POPT UP Sunny
Это еще один способ создания объектов, и результат тот же самый
2. Работа элементов массива
Как упомянуто выше, элементы могут быть прочитаны и написаны с помощью массива [sptript]
Диапазон подписок составляет 0 (23 (SuperScript 2) -1). Когда подписки отрицательны, плавающая точка или даже логические значения, массив будет автоматически преобразован в тип объекта, например:
Кода -копия выглядит следующим образом:
var b = new Array ();
b [2.2] = "xxxxx";
предупреждение (B [2.2]); //-> XXXXX
В настоящее время это эквивалентно b ["2.2"] = "XXXXX".
2.1 Петля массивов
Кода -копия выглядит следующим образом:
var a = [1,2,3,4,5,6];
for (var i = 0; i <a.length; i ++) {
блюд (A [i]);
}
Это наиболее часто используемый. После прохождения массива код появится с 1 до 6 по очереди.
Есть еще один обычно используемый:
Кода -копия выглядит следующим образом:
var a = [1,2,3,4,5,6];
для (var e в а) {
предупреждение (e);
}
Или всплыть от 1 до 6 по очереди. Ибо ... в объект, который проходит через объект (массив - это специальный объект) и используется в массиве. Поскольку массив не имеет имени атрибута, значение выводится напрямую. Например, этот оператор структуры используется в объекте:
Кода -копия выглядит следующим образом:
var a = {x: 1, y: 2, z: 3};
для (var e в а) {
оповещение (e + ":" + a [e]);
}
В настоящее время E принимает имя атрибута, то есть x, y, x. Для получения значения используется имя массива [атрибут], поэтому [e] эквивалентен ["x"], a [y "], a [z"], ["z"]
2.2 Обычно используемые функции в массивах
конг
Добавьте массив после существующего массива и верните новый массив, не влияя на существующий массив:
Кода -копия выглядит следующим образом:
var a = [123];
var b = "sunnycat";
var c = ["www", 21, "Ido"];
var d = {x: 3.14, y: "sk"};
var e = [1,2,3,4, [5,6, [7,8]];
предупреждение (A.Concat (b)); // -> 123, Sunnycat
предупреждение (а); // -> 123
предупреждение (B.Concat (C, D)); // -> sunnycatwww, 21, ido [объект объекта]
оповещение (C.Concat (b)); // -> www, 21, ido, sunnycat
оповещение (E.Concat (11,22,33) .join (" #")); // -> 1 # 2 # 3 # 4 # 5,6,7,8 # 11 # 22 # 33
Следует отметить, что его можно использовать только для массивов или струн. Если подключенная (а) является численным, логическим или объектом, будет сообщена ошибка. Когда строка подключена к массиву, строка будет сплачиваться с первым элементом массива в новый элемент, а подключенная строка будет добавлена с помощью строки (я не знаю причину этого, пожалуйста, раскрывайте ее, если вы знакомы с информацией). Для тех, кто содержат массивы и объекты, держите его одинаково после подключения.
Присоединиться
Подключите массив в строку с указанной проставкой:
Кода -копия выглядит следующим образом:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
Лерт (A.Join (",")); // -> a, b, c, d, e, f, g эквивалентно a.tostring ()
оповещение (a.join ("x")); // -> axbxcxdxexfxg
Это легко понять, но следует отметить, что он преобразуется только в одномерный массив. Если в массиве есть массив, он не будет использовать строку, указанную в соответствии с соединением, но используйте, например, toString () по умолчанию
Кода -копия выглядит следующим образом:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', [11,22,33]];
оповещение (a.join (" *")); // -> a * b * c * d * e * f * g * 11,22,33
Примечание: массив в массиве не используется для * соединения
поп
Удалить последний элемент массива и вернуть элемент
Кода -копия выглядит следующим образом:
var a = ["aa", "bb", "cc"];
document.write (a.pop ()); // -> cc
document.write (a); // -> aa, bb
ПРИМЕЧАНИЕ. Если массив пуст, не определено возвращено.
толкать
Добавить массив за массивом и вернуть новую длину массива
Кода -копия выглядит следующим образом:
var a = ["aa", "bb", "cc"];
document.write (a.push ("dd")); // -> 4
document.write (a); // -> AA, BB, CC, DD
Document.Write (A.Push ([1,2,3])); // -> 5
document.write (a); // -> AA, BB, CC, DD, 1,2,3
Разница от CONCAT заключается в том, что CONCAT не влияет на исходный массив, он непосредственно возвращает новый массив, в то время как PUSH напрямую изменяет исходный массив, который возвращает новую длину массива.
сортировка
Сортировка массива, давайте сначала посмотрим на пример
Кода -копия выглядит следующим образом:
var a = [11,2,3,33445,5654,654, "ASD", "B"];
оповещение (A.Sort ()); // -> 11,2,3,33445,5654,654, ASD, b
Результат очень удивителен? Да, сортировка основана не на целочисленном размере, а на сравнении строк, которое состоит в том, чтобы сравнить код ANSI первого символа, а маленькие - впереди. Если то же самое верно, второй персонаж будет сравнивать. Если вы хотите сравнить в соответствии с целочисленными значениями, вы можете сделать это.
Кода -копия выглядит следующим образом:
var a = [11,2,3,33445,5654,654];
a.sort (function (a, b) {
вернуть A - B;
});
предупреждение (а); // -> 2,3,11,654,5654,33445
Метод SORT () имеет дополнительный параметр, который является функцией в коде. Это простой пример. Неоперативные не могут быть отсортированы. Не носители нужно судить больше, поэтому я не буду говорить об этом здесь.
обеспечить регресс
Обратно пропорционально сортируйте массив и сортировку (), возьмите первое значение ASCII персонажа и сравните его
Кода -копия выглядит следующим образом:
var a = [11,3,5,66,4];
оповещение (A.Reverse ()); // -> 4,66,5,3,11
Если массив также содержит массив, он не будет решать элементы, если он обрабатывается как объект.
Кода -копия выглядит следующим образом:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', [4,11,33]];
оповещение (A.Reverse ()); // -> 4,11,33, G, F, E, D, C, B, а
оповещение (a.join (" *")); // -> 4,11,33 * g * f * e * d * c * b * a
Это должно быть последнее 11, потому что 4, 11, 33 рассматриваются как полное сравнение объектов, поэтому они занимают первое место.
Если вы не можете понять это, используйте joint (), чтобы связать его вместе, и это будет гораздо более очевидным
сдвиг
Удалить первый элемент массива и вернуть элемент, который похож на POP
Кода -копия выглядит следующим образом:
var a = ["aa", "bb", "cc"];
document.write (a.shift ()); // -> аа
document.write (a); // -> BB, CC
Примечание. Когда массив пуст, не определяется.
непрерывно
В отличие от сдвига, добавьте элементы к передней части массива и верните новую длину массива.
Кода -копия выглядит следующим образом:
var a = ["aa", "bb", "cc"];
Document.Write (A.Unshift (11)); // -> 4 Примечание: неопределенное возвращается в т.е.
document.write (a); // -> 11, AA, BB, CC
Document.Write (A.Unshift ([11,22])); // -> 5
document.write (a); // -> 11,22,11, AA, BB, CC
document.write (a.unshift ("cat")); // -> 6
document.write (a); // -> Cat, 11,22,11, AA, BB, CC
Обратите внимание на этот метод, Undefined будет возвращен в IE, который, кажется, является ошибкой с Microsoft. Я могу правильно сыграть новую длину массива под Firefox.
среза
Возвратный фрагмент массива
Кода -копия выглядит следующим образом:
var a = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];
оповещение (A.Slice (1,2)); // -> б
оповещение (A.Slice (2)); // -> C, D, E, F, G.
оповещение (A.Slice (-4)); // -> d, e, f, g
оповещение (A.Slice (-2, -6)); // -> пусто
A.Slice (1,2), начиная от подростка, 1 к индексу, 2, обратите внимание, что элементы с индексом не включены.
Если есть только один параметр, то по умолчанию до конца массива
-4 представляет четвертый последний элемент, поэтому четыре элемента в обратном отсчете возвращаются
Последняя строка начинается со второй до последней. Поскольку он перехвачен позже, явно невозможно получить предыдущий элемент, поэтому он возвращает пустой массив. Если он изменен на A.Slice (-6, -2), он возвращает B, C, D, E
сплайс
Удалить элемент фрагмента из массива и вернуть удаленный элемент
Кода -копия выглядит следующим образом:
var a = [1,2,3,4,5,6,7,8,9];
Document.Write (A.Splice (3,2)); // -> 4,5
document.write (a); // -> 1,2,3,6,7,8,9
Document.Write (A.Splice (4)); // -> 7,8,9 Примечание: вернуть пусто
document.write (a); // -> 1,2,3,6
document.write (a.splice (0,1)); // -> 1
document.write (a); // -> 2,3,6
document.write (a.splice (1,1, ["aa", "bb", "cc"])); // -> 3
document.write (a); // -> 2, AA, BB, CC, 6,7,8,9
document.write (a.splice (1,2, "ee"). Join ("#")); // -> AA, BB, CC#6
document.write (a); // -> 2, EE, 7,8,9
document.write (a.splice (1,2, "cc", "aa", "tt"). Join ("#")); // -> ee#7
document.write (a); // -> 2, CC, AA, TT, 8,9
Обратите внимание, что этот метод в т.е. Второй параметр необходим. Если он не будет заполнен, это по умолчанию в 0. Например, A.Splice (4), а в т.е. он вернется пустым. Эффект эквивалентен A.Splice (4,0)
Тостронг
Преобразовать массивы в строки, а не только массивы, но все объекты могут использовать этот метод
Кода -копия выглядит следующим образом:
var a = [5,6,7,8,9, ["a", "bb"], 100];
document.write (a.tostring ()); // -> 5,6,7,8,9, A, BB, 100
var b = новая дата ()
Document.Write (B.ToString ()); // -> Сб 8 августа 17:08:32 UTC+0800 2009
var c = function (s) {
предупреждение (ы);
}
document.write (c.tostring ()); // -> function (s) {alert (s); }
Логическое значение возвращает истинность или false, и имя объекта объекта]
По сравнению с методом join () join () только заменяет одномерные массивы, в то время как ToString () полностью плоскоспит весь массив (независимо от одномерного или многомерного).
В то же время этот метод может использоваться для десятичного, бинарного, энте и шестнадцатеричного преобразования, например:
Кода -копия выглядит следующим образом:
var a = [5,6,7,8,9, "a", "bb", 100];
for (var i = 0; i <a.length; i ++) {
Document.Write (a [i] .toString () + «двоичный» - + a [i] .toString (2) + », октальный - это« + a [i] .toString (8) + », шестнадцатеричный - это» + a [i] .toString (16)); // -> 4,5
}
Результат вывода:
Кода -копия выглядит следующим образом:
Бинарник 5 - 101, восьмиугольник - 5, а шестнадцатеричный - 5
Бинар 6 - 110, восьмиугольный - 6, а шестнадцатеричный - 6
Бинарник 7 равен 111, восьмиугольный - 7, а шестнадцатеричный - 7
Бинарник 8 составляет 1000, восьмиугольный составляет 10, а шестнадцатеричный - 8
Бинарник 9 - 1001, восьмиугольный - 11, а шестнадцатеричный - 9
Бинарник А - это восьми
Бинарник BB - BB, восьмиугольника - BB, а шестнадцатеричный - BB.
Бинарник 100 - 1100100, восьмиугольник - 144, а шестнадцатеричный - 64.
Преобразование может быть выполнено только на элементах. Если весь массив будет преобразован, массив будет возвращен неповрежденным.
Толокалинг
Возвращает локальную строку формата, в основном используемая в объекте даты
Кода -копия выглядит следующим образом:
var a = new Date ();
document.write (a.tostring ()); // -> Сб 8 августа 17:28:36 UTC+0800 2009
document.write (a.tolocalestring ()); // -> 8 августа 2009 г. 17:28:36
document.write (a.tolocaledatestring ()); // -> 8 августа 2009 г.
Разница состоит в том, что ToString () возвращает стандартный формат, а ToLocalESTRING () возвращает полную дату локального формата (в [панели управления] >> [область и языковые варианты], путем изменения [времени] и [длинных дат] форматов), толакалледатэгринг () совпадает с TolocalSting (), но это требует меньше времени.
ценность
Вернуть разные исходные значения в соответствии с разными объектами. При использовании для вывода это похоже на ToString (). Однако ToString () возвращает тип строки, а значение () возвращает исходный тип объекта
Кода -копия выглядит следующим образом:
var a = [1,2,3, [4,5,6, [7,8,9]]];
var b = new Date ();
var c = true;
var d = function () {
блюд ("sunnycat");
};
document.write (a.valueof ()); // -> 1,2,3,4,5,6,7,8,9
document.write (typeof (a.valueof ())); // -> объект
document.write (b.valueof ()); // -> 1249874470052
document.write (typeof (b.valueof ())); // -> номер
document.write (c.valueof ()); // -> true
document.write (typeof (c.valueof ())); // -> логический
document.write (d.valueof ()); // -> function () {alert ("sunnycat"); }
document.write (typeof (d.valueof ())); // -> Функция
Массивы также являются объектами, поэтому Typeof (a.valueof ()) возвращает объект, а возвращаемый многомерный массив все еще остается
Кода -копия выглядит следующим образом:
var a = [1,2,3, [4,5,6, [7,8,9]]];
var aa = a.valueof ();
Document.Write (AA [3] [3] [1]); // -> 8
Объект даты возвращает количество миллисекундов с 1 января 1970 года, а объекты по математике и ошибкам не имеют значения метода.