Массивы в JavaScript — свойства и методы
Объект Array является встроенным объектом JavaScript и используется для создания массивов, т. е. упорядоченных наборов элементов любого типа.
Создание массива
а) создание пустого массива:
var colorSet = new Array(); // или
var colorSet = Array(); // или
var myPointArray = new Array; //или
ColorNames = [];
b) создание массива с заданным количеством элементов:
var colorSet = new Array(5); или
var colorSet = Array(5);
с) создание заполненного значениями массива:
var new Array(»hello») // массив с одним значением
var myExportFormats = ["Text Only", "Tagged Text", "RTF"]; // массив с тремя значениями
var myInfoColor = [0,15,100,0]; // массив с четырьмя значениями
В двух последних случаях массив создан при помощи инициализатора массива [элемент0, элемент1, …, элементN]
d) Неявное увеличение размера массива произойдет, если присвоить несуществующему элементу массива какое-то значение:
var colorSet = Array(5);
colorSet[9] = «Magenta»;
Размер массива увеличился до 10 элементов.
Свойсва массива
Самым важным свойством массива является свойство Length — размер массива, количество элементов в нем.
var myExtensions = [".jpg", ".jpeg", ".eps", ".ps", ".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"]
var size=myExtensions.length;
alert(»В массиве «+size+» элементов»);
Методы
1. Метод concat() — объединение двух массивов в новый массив
Синтаксис: массив.concat(массив1)
Аргументы: массив1 — выражение, возвращающее массив
Результат: новый массив
// Метод concat (JavaScript)
var i;
var myExtensions1 = [".jpg", ".jpeg", ".eps", ".ps"];
var myExtensions2 = [".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"];
var myExtensionsAll=[]; // Сюда сбросим два массива
// Применяем метод для создания нового массива
myExtensionsAll=myExtensions1.concat(myExtensions2);
alert(myExtensionsAll.length); // Количество элементов в новом массиве
// Просматриваем элементы
for(i=0; i<myExtensionsAll.length; i++)
{
alert(»Элемент массива «+i+» равен «+myExtensionsAll[i]);
}
// Добавление второго массива к первому:
myExtensions1=myExtensions1.concat(myExtensions2);
alert(myExtensions1.length) // Длина дополненного массива
// Просматриваем дополненный массив
for(i=0; i<myExtensions1.length; i++)
{
alert(»Элемент массива «+i+» равен «+myExtensions1[i]);
}
2. Метод join() — преобразовывает все элементы массива в строки, которые потом объединяются в одну строку. Разделять значения массива можно при помощи задания специальной строки. Если строку-разделитель не задать, то значения массива будут разделены пустой строкой. (??? — в моём опыте получается не пустой строкой, а запятой???)
Синтаксис: массив.join(разделитель)
Аргументы: разделитель — любое строковое выражение
Результат: строковое значение
// Метод Join()
var myNum=[1,2,3];
alert(myNum.join(-));
// На экране получим: 1-2-3
var myColors=new Array(»голубой, «, «зеленый, «, «красный»);
alert(myColors.join(»светло»));
// На экране получим: 1-2-3
var myColors=new Array(»голубой, «, «зеленый, «, «красный»);
alert(myColors.join(»светло»));
// На экране получим:
3. Метод pop() — удаляет последний элемент массива и возвращает его в качестве результата. Размер массива при этом уменьшается на 1.
Синтаксис: массив.pop()
Результат: значение последнего элемента массива
var x = ["a", "b", "c", "d"];
var y;
alert(»В исходном массиве сейчас такие элементы «+x.join(», «));
y=x.pop();
alert(»Методом pop() получаем последний элемент массива «+y);
alert(»В массиве остались элементы «+x.join(», «));
4. Метод push() — добавляет элементы в конец массива. Возвращает новый размер массива.
Синтаксис: массив.push(элемент1, …, элементN)
Аргументы: элемент1, …, элементN – любые выражения
Результат: новая длина массива
var myColors=["Red", "Blue"];
var newSize;
newSize=myColors.push(»Yellow», «Green», «Black»);
alert(»После применения метода push() размер массива стал «+newSize);
5. Метод reverse() — изменяет порядок следования элементов в массиве на противоположный. Если не все элементы массива были определены, то им присваивается значение undefined.
Синтаксис: массив.reverse()
Результат: массив
var x = ["a", "b", "c", "d"];
x.reverse();
alert(»Просмотр массива:» + x.join(»,»));
6. Метод Shift() — удаляет первый элемент массива и возвращает его в качестве результата. Размер массива при этом уменьшается на 1.
Синтаксис: массив.shift()
var myColors=new Array(»голубой», «зеленый», «красный»);
var mySize=myColors.length;
alert(»Длина массива:»+ mySize);
// Удаляем первый элемент массива
var myFirstColor = myColors.shift();
alert(»Изъят из массива » + myFirstColor);
alert(»В массиве сейчас элементы: «+ myColors.join());
alert(»Длина массива: «+myColors.length);
7. Метод Slice() — создаёт новый массив, беря из старого часть элементов
Синтаксис: массив.slice(начало [,конец])
Аргументы: начало и конец — любые числовые выражения
Результат: новый массив
Аргумент начало задает индекс первого элемента копируемой части, необязательный аргумент конец — индекс ее последнего элемента. При этом:
Если значение конец неотрицательно, то копируются элементы массив[начало], массив[начало+1], …, массив[конец-1].
Если значение конец отрицательно, то копируются элементы массив[начало], массив[начало+1], …, массив[массив.length – конец – 1], т. е. конец означает смещение от конца массива. Например, если конец = –1, то последний элемент не брать.
Если аргумент конец отсутствует, то копируются элементы массив[начало], массив[начало+1], …, массив[массив.length-1], т. е. копируются все элементы до конца массива.
var myPoints=[22, 88, 67, 33, 97, 41];
var myMiddlePoints=[];
var myEndPoints=[];
var myStartPoints=[];
// В новый массив 2-е средние точки
myMiddlePoints=myPoints.slice(2, -2);
alert(»Две средние точки: «+myMiddlePoints.join());
//В новый массив 2-е последние точки
myEndPoints=myPoints.slice(4,5);
alert(»Две последние точки: «+myEndPoints.join());
// Или так:
myEndPoints=myPoints.slice(4);
alert(»Две последние точки: «+myEndPoints.join());
//В новый массив 2-е первые точки
myStartPoints=myPoints.slice(0,1);
alert(»Две первые точки: «+myStartPoints.join());
8. Метод sort() — сортирует массив, делая в нем перестанвки. Способ сортировки задается необязательным аргументом функция; если аргумента нет, то производится сортировка в лексикографическом порядке по возрастанию значений элементов, которые предварительно преобразуются в строки.
a = new Array(1,6,9,9,3,5);
function g(a,b)
{
if(a > b) return 1;
if(a < b) return -1;
if(a==b) return 0;
}
b = a.sort(g);
В результате выполнения этого кода получим массив следующего вида:
b[0]=1 b[1]=3 b[2]=5 b[3]=6 b[4]=9 b[5]=9
//Пример сортировки массива в лексикографическом порядке
//по убыванию значений элементов
var flowers = ["астра", "роза", "пион", "ромашка"];
alert(flowers.sort(cmp));
function cmp(a, b) {
if (String(a) > String(b))
return -1;
if (String(a) < String(b))
return 1;
return 0;
}
В результате работы скрипта увидим строку строку: ромашка,роза,пион,астра.
9. Метод splice() — удаляет часть массива и возвращает ее в качестве результата
Синтаксис: массив.splice(начало, счетчик [,элементы])
Аргументы: начало и счетчик – любые числовые выражения
элементы – список любых выражений через запятую
Результат: новый массив
Аргумент начало задает индекс первого элемента удаляемой части, аргумент счетчик – количество удаляемых элементов.
Если заданы элементы, то они вставляются вместо удаленной части массива.
var x = new Array(10);
var y = new Array();
// Заполняем массив
for (i = 0; i < 10; i++) {
x[i] = i;
}
y=x.splice(5, 3, -5, -6, -7);
alert(y);// выведет строку 5,6,7
alert(x); //выведет строку 0,1,2,3,4,-5,-6,-7,8,9.
10. Метод toString() — преобразует массив в строковое значение. Для этого все элементы массива преобразуются в строки, и эти строки объединяются в одну строку через запятую.
Синтаксис: массив.toString()
Результат: строковое значение
var x = new Array(10, 20, 30);
var str=x.toString();
alert(x); // выведет строку 10,20,30.
11. Метод toLocaleString() — преобразует массив в строковое значение, учитывая формат операционной системы. Результат – строковое значение – зависит от объекта. Обычно он дает тот же результат, что и метод toString().
12. Метод valueOf() — возвращает примитивное значение массива. Для этого все элементы массива преобразуются в строки, и эти строки объединяются в одну строку через запятую. Иными словами, этот метод возвращает тот же результат, что и метод toString().
Результат: строковое значение
13. Метод unshift() — добавляет значения аргументов в начало массива и возвращает в качестве результата новый размер массива, который при этом увеличивается на N.
Синтаксис: массив.unshift(элемент1, …, элементN)
Аргументы: элемент1, …, элементN – любые выражения
Результат: новая длина массива
var myColors=new Array(»голубой», «зеленый», «красный»);
var mySize=myColors.length;
alert(»Длина массива:»+ mySize);
// Удаляем первый элемент массива
var mySize = myColors.unshift(»черный», «белый»);
alert(»В массиве сейчас элементы: «+ myColors);
alert(»Новая длина массива: «+mySize);













Leave your response!
You must be logged in to post a comment.