Основной объект | |
Реализовано в | Navigator 3.0, LiveWire 1.0 |
new Array(arrayLength);
new Array(element0, element1, ..., elementN);Параметры
Описание
В Navigator 3.0, Вы можете определять начальную длину при создании массива. Следующий код создает массив из пяти элементов:
billingMethod = new Array(5)
Когда Вы создаете массив, все элементы первоначально равны null. Следующий код создает массив из 25 элементов, затем инициализирует первые три элемента:
musicTypes = new Array(25)
Однако, в Navigator 4.0, если Вы определяете
musicTypes[0] = "R&B"
musicTypes[1] = "Blues"
musicTypes[2] = "Джаз"LANGUAGE="JavaScript1.2"
в тэге <SCRIPT>
, использование new Array(1)
создает новый массив с a[0]=1
.
colors = new Array()
Вы можете создавать плотный массив из двух или больше элементов, начинающихся с индекса 0, если Вы определяете начальные значения для всех элементов. Плотный массив, каждый из элементов которого имеет значение. Следующий код создает плотный массив с тремя элементами:
colors[99] = "midnightblue"
myArray = new Array("Hello", myVar, 3.14159)
В Navigator 2.0, Вы должны индексировать массив порядковым числом, например document.forms[0]
. В Navigator 3.0 и более поздних версиях, Вы можете индексировать массив или порядковым числом или именем (если определено). Например, Вы определяете следующий массив:
myArray = new Array("Wind","Rain","Fire")
Вы можете затем обратиться к первому элементу массива как myArray[0]
или myArray["Wind"]
.
В Navigator 4.0, результат соответствия регулярного выражения и строки может создавать массив. Этот массив имеет свойства и элементы, которые обеспечивают информацию о соответствии. Массив - возвращаемое значение RegExp.exec
, String.match
и String.replace
. Для понимания этих свойств и элементов, рассмотрите следующий пример и затем обратитесь к таблице ниже:
<SCRIPT LANGUAGE="JavaScript1.2">
//Соответствие одному d, сопровождаемому одним, или
//большим количеством b, сопровождаемого одним d
//Помнит согласованные b и следующий d
//Игнорирует регистрmyRe=/d(b+)(d)/i;
myArray = myRe.exec("cdbBdbsbz");</SCRIPT>
Свойства и элементы, возвращенные этим соответствием следующие:
Примеры
Пример 1. Следующий пример создает массив msgArray
, с длиной 0, затем присваивает значения элементам msgArray[0]
и msgArray[99]
, изменяя длину массива на 100.
msgArray = new Array()
Смотрите также пример для
msgArray [0] = "Привет"
msgArray [99] = "мир"
// Следующее выражение истинно,
// потому что элемент msgArray [99] определен.
if (msgArray .length == 100)
document.write("Длина равна 100.")onError
.
Пример 2: Двумерный массив. Следующий код создает двумерный массив и показывает результаты.
a = new Array(4)
Этот пример показывает следующие результаты:
for (i=0; i < 4; i++) {
a[i] = new Array(4)
for (j=0; j < 4; j++) {
a[i][j] = "["+i+","+j+"]"
}
}
for (i=0; i < 4; i++) {
str = "Строка "+i+":"
for (j=0; j < 4; j++) {
str += a[i][j]
}
document.write(str,"<p>")
}
Тест многомерного массива
Строка 0:[0,0][0,1][0,2][0,3]
Строка 1:[1,0][1,1][1,2][1,3]
Строка 2:[2,0][2,1][2,2][2,3]
Строка 3:[3,0][3,1][3,2][3,3]Смотрите также
Image
Свойства
index
Для массива, созданного регулярным выражением соответствия, нуль-основанный индекс соответствия в строке.
Свойство объекта |
Array
|
Статическое | |
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
input
Для массива, созданного регулярным выражением соответствия, отражает первоначальную строку с которой регулярное выражение было согласовано.
Свойство объекта |
Array
|
Статическое | |
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
length
Целое число, которое определяет количество элементов в массиве. Вы можете устанавливать свойство length
, чтобы усеч массив, в любое время. Вы не можете расширять массив; например, если Вы устанавливаете длину равной 3, когда она в настоящее время 2, массив будет все еще содержать только 2 элемента.
Свойство объекта |
Array
|
Реализовано в | Navigator 3.0, LiveWire 1.0 |
Примеры
В следующем примере функция getChoice
использует свойство length
, чтобы выполнить итерации с каждым элементом массива musicType
. musicType
это элемент, выбранный в форме musicForm
.
function getChoice() {
Следующий пример укорачивает массив
for (var i = 0; i < document.musicForm.musicType.length; i++) {
if (document.musicForm.musicType.options[i].selected == true) {
return document.musicForm.musicType.options[i].text
}
}
}statesUS
к длине 50, если текущая длина больше чем 50.
if (statesUS.length > 50) {
statesUS.length=50
alert("США имеют только 50 штатов. Новая длина равна " + statesUS.length)
}prototype
Представляет прототип для этого класса. Вы можете использовать прототип, чтобы добавлять свойства или методы ко всем образцам класса. Для информации о прототипах смотрите Function.prototype
.
Свойство объекта |
Array
|
Реализовано в | Navigator 3.0, LiveWire 1.0 |
Методы
concat
Объединяет два массива и возвращает новый массив.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
concat(arrayName2)
Параметры
arrayName2 | Имя массива, чтобы присоеденить к этому массиву. |
Описание
concat
не изменяет первоначальные массивы, но возвращает копию на "один уровень в глубину", которая содержит копии элементов, объединенных из первоначальных массивов. Элементы первоначальных массивов копируются в новый массив следующим образом:
String
и Number
) -- concat
копирует строки и числа в новый массив. Изменения строки или числа в одном массиве не воздействуют на другие массивы.
join
Объединяет все элементы массива в строку.
Метод объекта |
Array
|
Реализовано в | Navigator 3.0, LiveWire 1.0 |
Синтаксис
join(separator)
Параметры
separator | Определяет строку для отделения каждого элемента массива. Разделитель преобразовывается в строку в случае необходимости. Если опущен, элементы массива разделяются запятой. |
Описание
Строковое преобразование всех элементов массива объединяет их в одну строку.
Примеры
Следующий пример создает массив a
с тремя элементами, затем объединяет массив три раза: используя заданный по умолчанию разделитель, затем запятую и пробел, и затем плюс.
a = new Array("Ветер","Дождь","Огонь")
Этот код производит следующий вывод:
document.write(a.join() +"<BR>")
document.write(a.join(", ") +"<BR>")
document.write(a.join(" + ") +"<BR>")
Ветер,Дождь,Огонь
Ветер, Дождь, Огонь
Ветер + Дождь + ОгоньСмотрите также
Array.reverse
pop
Удаляет последний элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
pop()
Параметры
Нет.
Примеры
Следующий код показывает массив myFish
перед и после удаления последнего элемента. Также показывает удаленный элемент:
myFish = ["ангел", "клоун", "мандарин", "хирург"];
Этот пример показывает следующее:
document.writeln("myFish перед: " + myFish);
popped = myFish.pop();
document.writeln("myFish после: " + myFish);
document.writeln("удален этот элемент: " + popped);
Смотрите также
push
, shift
, unshift
push
Добавляет один или более элементов к концу массива и возвращает последний добавленный элемент. Этот метод изменяет длину массива.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
push(elt1, ..., eltN)
Параметры
elt1, ..., eltN | Элементы, добавляемые к концу массива. |
Описание
Поведение метода push
аналогично функции push в Perl 4. Обратите внимание, что это поведение отлично в Perl 5.
Пример
Следующий код показывает массив myFish
перед и после добавления элементов в его конец. Также показывает последний добавленный элемент:
myFish = ["ангел", "клоун"];
Этот пример показывает следующее:
document.writeln("myFish перед: " + myFish);
pushed = myFish.push("барабан", "лев");
document.writeln("myFish после: " + myFish);
document.writeln("последним добавлен этот элемент: " + pushed);
Смотрите также
pop
, shift
, unshift
reverse
Реверсирует порядок элементов в массиве: первый элемент массива становится последним, и последний становится первым.
Метод объекта |
Array
|
Реализовано в | Navigator 3.0, LiveWire 1.0 |
Синтаксис
reverse()
Параметры
Нет.
Описание
Метод reverse
реверсирует порядок элементов в вызывающем объекте array.
Примеры
Следующий пример создает массив myArray
, содержащий три элемента, затем реверсирует порядок элементов в массиве.
myArray = new Array("один", "два", "три")
Этот код изменяет
myArray.reverse()myArray
так:
Array.join
, Array.sort
shift
Удаляет первый элемент из массива и возвращает этот элемент. Этот метод изменяет длину массива.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
shift()
Параметры
Нет.
Пример
Следующий код показывает массив myFish
перед и после удаления его первого элемента. Также показывает удаленный элемент:
myFish = ["ангел", "клоун", "мандарин", "херург"];
Этот пример показывает следующее:
document.writeln("myFish перед: " + myFish);
shifted = myFish.shift();
document.writeln("myFish после: " + myFish);
document.writeln("Удален этот элемент: " + shifted);
Смотрите также
pop
, push
, unshift
slice
Извлекает часть массива и возвращает новый массив.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
slice(begin,end)
Параметр
Описание
slice
не изменяет первоначальный массив, но возвращает новую копию на "один уровень вглубь", которая содержит копии элементов, вырезанных из первоначального массива. Элементы первоначального массива копируются в новый массив следующим образом:
Строки и числа (не объекты String
и Number
) -- slice
копирует строки и числа в новый массив. Изменения строк или чисел в одном массиве не воздействуют на другой массив.
Если новый элемент добавлен к любому массиву, это не воздействует на другой массив.
Примеры
В следующем примере slice
создает новый массив newCar
из myCar
. Оба включают ссылку на объект myHonda
. Когда свойство color myHonda
изменяется на purple
, оба массива отражают изменение.
<SCRIPT LANGUAGE="JavaScript1.2">
//Используем slice для создания newCar из myCar.
myHonda = {color:"красный",wheels:4,engine:{cylinders:4,size:2.2}}
myCar = [myHonda, 2, "cherry condition", "куплена в 1997"]
newCar = myCar.slice(0,2)//Пишем значения myCar, newCar и свойства color myHonda
// имеющегося в обоих массивах.
document.write("myCar = " + myCar + "<BR>")
document.write("newCar = " + newCar + "<BR>")
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR><BR>")//Изменяем цвет свойства color myHonda.
myHonda.color = "фиолетовый"
document.write("Новый цвет моей Honda " + myHonda.color + "<BR><BR>")//Пишем свойство color myHonda, имеющегося в обоих массивах.
document.write("myCar[0].color = " + myCar[0].color + "<BR>")
document.write("newCar[0].color = " + newCar[0].color + "<BR>")</SCRIPT>
Этот сценарий записывает:
myCar = [{color:"красный", wheels:4, engine:{cylinders:4, size:2.2}}, 2,
"cherry condition", "куплена в 1997"]
newCar = [{color:"красный", wheels:4, engine:{cylinders:4, size:2.2}}, 2]
myCar[0].color = красный newCar[0].color = красный
Новый цвет моей Honda фиолетовый
myCar[0].color = фиолетовый
newCar[0].color = фиолетовый splice
Изменяет содержание массива, добавляя новые элементы при удалении старых элементов.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
splice(index, howMany, newElt1, ..., newEltN)
Параметры
Описание
Если Вы определяете различное число элементов для вставки и удаления, массив будет иметь другую длину в конце запроса.
Примеры
Следующий сценарий иллюстрирует использование splice
:
<SCRIPT LANGUAGE="JavaScript1.2">
myFish = ["ангел", "клоун", "мандарин", "херург"];
document.writeln("myFish: " + myFish + "<BR>");removed = myFish.splice(2, 0, "барабан");
document.writeln("После добавления 1: " + myFish);
document.writeln("удалено: " + removed + "<BR>");removed = myFish.splice(3, 1)
document.writeln("После удаления 1: " + myFish);
document.writeln("удалено: " + removed + "<BR>");removed = myFish.splice(2, 1, "труба")
document.writeln("После замены 1: " + myFish);
document.writeln("удалено: " + removed + "<BR>");removed = myFish.splice(0, 2, "попугай", "анемон", "синий")
document.writeln("После замены 2: " + myFish);
document.writeln("удалено: " + removed);</SCRIPT>
Этот сценарий показывает:
myFish: ["ангел", "клоун", "мандарин", "херург"]
После добавления 1: ["ангел", "клоун", "барабан", "мандарин", "херург"]
удалено: undefinedПосле удаления 1: ["ангел", "клоун", "барабан", "херург"]
удалено: мандаринПосле замены 1: ["ангел", "клоун", "труба", "херург"]
удалено: барабанПосле замены 2: ["попугай", "анемон", "синий", "труба", "херург"]
удалено: ["ангел", "клоун"]sort
Сортирует элементы массива.
Метод объекта |
Array
|
Реализовано в |
Navigator 3.0, LiveWire 1.0 Navigator 4.0: Поведение изменено. |
Синтаксис
sort(compareFunction)
Параметры
compareFunction | Определяет функцию, которая определяет порядок сортировки. Если опущен, массив сортируется лексикографически (в словарном порядке) согласно строковому преобразованию каждого элемента. |
Описание
Если compareFunction
не обеспечена, элементы сортируются, преобразуются в строки и сравниваются в лексикографическом порядке ("словарь" или "телефонная книга," не числовой). Например, "80" находится перед "9" в лексикографическом порядке, Но в числовой сортировке 9 находится прежде 80.
compareFunction(a, b)
меньше чем 0, сортирует b
к более низкому индексу чем a
.
compareFunction(a, b)
больше чем 0, сортирует b
к более высокому индексу чем a
.
function compare(a, b) {
Чтобы сравнивать числа вместо строк, сравнивающая функция может просто вычитать b из a:
if (a меньше b в соответствии с некоторым критерием упорядочивания)
return -1
if (a больше b в соответствии с критерием упорядочивания)
return 1
// a должно быть равно b
return 0
}
function compareNumbers(a, b) {
JavaScript использует устойчивую сортировку: индекс частичного порядка a и b не изменяется если a и b равны. Если индекс a был меньше индекса b перед сортировкой, это останется и после сортировки, независимо от того, как a и b передвигаются из-за сортировки.
return a - b
}
Поведение метода sort
различается в Navigator 3.0 и Navigator 4.0.
В Navigator 3.0, на некоторых платформах метод sort
не работает. Этот метод работает на всех платформах в Navigator 4.0.
<SCRIPT>
a = new Array();
a[0] = "Муравей";
a[5] = "Зебра";function writeArray(x) {
for (i = 0; i < x.length; i++) {
document.write(x[i]);
if (i < x.length-1) document.write(", ");
}
}writeArray(a);
В Navigator 3.0, JavaScript напечатает:
a.sort();
document.write("<BR><BR>");
writeArray(a);
</SCRIPT>
муравей, null, null, null, null, зебра
В Navigator 4.0, JavaScript напечатает:
муравей, null, null, null, null, зебра
муравей, undefined, undefined, undefined, undefined, зебра
муравей, зебра, undefined, undefined, undefined, undefinedПримеры
Следующий пример создает четыре массива и показывает первоначальный массив, затем сортирует массивы. Числовые массивы сортируются без сравнивающей функции и с ней.
<SCRIPT>
stringArray = new Array("Синий","Humpback","Белуга")
numericStringArray = new Array("80","9","700")
numberArray = new Array(40,1,5,200)
mixedNumericArray = new Array("80","9","700",40,1,5,200)function compareNumbers(a, b) {
return a - b
}document.write("<B>stringArray:</B> " + stringArray.join() +"<BR>")
document.write("<B>Сортировка:</B> " + stringArray.sort() +"<P>")document.write("<B>numberArray:</B> " + numberArray.join() +"<BR>")
document.write("<B>Сортировка без функции сравнения:</B> " + numberArray.sort() +"<BR>")
document.write("<B>Сортировка с compareNumbers:</B> " + numberArray.sort(compareNumbers) +"<P>")document.write("<B>numericStringArray:</B> " + numericStringArray.join() +"<BR>")
document.write("<B>Сортировка без функции сравнения:</B> " + numericStringArray.sort() +"<BR>")
document.write("<B>Сортировка с compareNumbers:</B> " + numericStringArray.sort(compareNumbers) +"<P>")document.write("<B>mixedNumericArray:</B> " + mixedNumericArray.join() +"<BR>")
Этот пример производит следующий вывод. Вывод показывается, когда сравнивающая функция используется, числа сортируются правильно, являются ли они числами или числовыми строками.
document.write("<B>Сортировка без функции сравнения:</B> " + mixedNumericArray.sort() +"<BR>")
document.write("<B>Сортировка с compareNumbers:</B> " + mixedNumericArray.sort(compareNumbers) +"<BR>")
</SCRIPT>
stringArray: Синий,Humpback,Белуга
Сортировка: Белуга,Синий,HumpbacknumberArray: 40,1,5,200
Сортировка без функции сравнения: 1,200,40,5
Сортировка с compareNumbers: 1,5,40,200numericStringArray: 80,9,700
Сортировка без функции сравнения: 700,80,9
Сортировка с compareNumbers: 9,80,700mixedNumericArray: 80,9,700,40,1,5,200
Сортировка без функции сравнения: 1,200,40,5,700,80,9
Сортировка с compareNumbers: 1,5,9,40,80,200,700Смотрите также
Array.join
, Array.reverse
toString
Возвращает строку, представляющую определенный объект.
Метод объекта |
Array
|
Реализовано в | Navigator 3.0, LiveWire 1.0 |
Синтаксис
toString()
Параметр
Нет.
Описание
Каждый объект имеет метод toString
, который автоматически вызывается, когда объект должен представиться как текстовое значение или когда объект упоминается в строковой конкатенации.
Для объекта Array
, встроенный метод toString
объединяет массив и возвращает одну строку, содержащую все элементы массива, разделенные запятыми. Например, следующий код создает массив и использует toString
, чтобы преобразовать массив в строку при написании вывода.
var monthNames = new Array("Янв","Фев","Мар","Апр")
Вывод следующий:
document.write("monthNames.toString() равно " + monthNames.toString())
monthNames.toString() равно Янв,Фев,Мар,Апр
Для информации об определении Вашего собственного метода toString
, смотрите метод Object.toString
.
unshift
Добавляет один или больше элементов к началу массива и возвращает новую длину массива.
Метод объекта |
Array
|
Реализовано в | Navigator 4.0, Netscape Server 3.0 |
Синтаксис
arrayName.unshift(elt1,..., eltN)
Параметры
elt1,...,eltN | Элементы, добавляемые в начало массива. |
Примеры
Следующий код показывает массив myFish
перед и после доьавления элементов в него.
myFish = ["ангел", "клоун"];
Этот пример показывает следующее:
document.writeln("myFish перед: " + myFish);
unshifted = myFish.unshift("барабан", "лев");
document.writeln("myFish после: " + myFish);
document.writeln("Новая длина: " + unshifted);
myFish перед: ["ангел", "клоун"]
myFish после: ["барабан", "лев", "ангел", "клоун"]
Новая длина: 4
Смотрите также
pop
, push
, shift
Последняя Модификация: 10/31/97 16:00:33
Все мессаги сюда:yanich@inbox.ru |