Избранное »

22.09.2014 – 07:27 | 2 комментария | 27 204 views

Здравствуйте все, кто работает в Индизайне!
Извещаем вас о том, что на youtube.com работает канал «InDesign Мастерская вёрстки». Там уже размещены более 70 видео с полным описанием как работать с программой DoTextOK. Другие интересные темы, касающиеся работы …

Читать полностью »
Работа в InDesign

Хитрости и секреты, приемы работы, уроки

Новая версия!

Особенности новой версии Индизайна

Плагины

Описание плагинов, информация о плагинах для работы с Adobe InDesign

Скрипты

Готовые к использованию скрипты для Adobe InDesign

Скриптинг

Описание языка, приёмов и методов программирования для Adobe InDesign

Home » Скриптинг

Массивы в JavaScript — свойства и методы

Добавлено на 20.10.2008 – 23:04Без комментариев | 939 views

Объект Array является встроенным объектом JavaScript и используется для создания массивов, т. е. упорядоченных наборов элементов любого типа.

Создание массива


а) создание пустого массива:

1
2
3
var colorSet = new Array(); // или 
var myPointArray = new Array; //или
ColorNames = [];

b) создание массива с заданным количеством элементов:

1
2
var colorSet = new Array(5); //или 
var colorSet = Array(5);

с) создание заполненного значениями массива:

1
2
3
var new Array("hello") // массив с одним значением
var myExportFormats = ["Text Only", "Tagged Text", "RTF"]; // массив с тремя значениями
var myInfoColor = [0,15,100,0]; // массив с четырьмя значениями

В двух последних случаях массив создан при помощи инициализатора массива [элемент0, элемент1, …, элементN]

d) Неявное увеличение размера массива произойдет, если присвоить несуществующему элементу массива какое-то значение:

1
2
var colorSet = Array(5);
colorSet[9] = "Magenta";

Размер массива увеличился до 10 элементов.

Свойсва массива

Самым важным свойством массива является свойство Length — размер массива, количество элементов в нем.

1
2
3
var myExtensions = [".jpg", ".jpeg", ".eps", ".ps", ".pdf", ".tif", ".tiff", ".gif", ".psd", ".ai"]
var size=myExtensions.length;
alert("В массиве "+size+" элементов");
Сообщение

Сообщение

Методы

1. Метод concat() — объединение двух массивов в новый массив

Синтаксис: массив.concat(массив1)
Аргументы: массив1 — выражение, возвращающее массив
Результат: новый массив

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Метод 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) // Длина дополненного массива
<span style="color: #008000;">// Просматриваем дополненный массив
for(i=0; i&lt;myExtensions1.length; i++)
{
alert("Элемент массива "+i+" равен "+myExtensions1[i]);
}
</span>

2. Метод join() — преобразовывает все элементы массива в строки, которые потом объединяются в одну строку. Разделять значения массива можно при помощи задания специальной строки. Если строку-разделитель не задать, то значения массива будут разделены пустой строкой. (??? — в моём опыте получается не пустой строкой, а запятой???)

Синтаксис: массив.join(разделитель)
Аргументы: разделитель — любое строковое выражение
Результат: строковое значение

1
2
3
4
5
6
7
8
9
10
11
12
// Метод 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()
Результат: значение последнего элемента массива

1
2
3
4
5
6
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 — любые выражения
Результат: новая длина массива

1
2
3
4
var myColors=["Red", "Blue"];
var newSize;
newSize=myColors.push("Yellow", "Green", "Black");
alert("После применения метода push() размер массива стал "+newSize);

5. Метод reverse() — изменяет порядок следования элементов в массиве на противоположный. Если не все элементы массива были определены, то им присваивается значение undefined.

Синтаксис: массив.reverse()
Результат: массив

1
2
3
var x = ["a", "b", "c", "d"];
x.reverse();
alert("Просмотр массива:" + x.join(","));

6. Метод Shift() — удаляет первый элемент массива и возвращает его в качестве результата. Размер массива при этом уменьшается на 1.

Синтаксис: массив.shift()

1
2
3
4
5
6
7
8
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], т. е. копируются все элементы до конца массива.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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() — сортирует массив, делая в нем перестанвки. Способ сортировки задается необязательным аргументом функция; если аргумента нет, то производится сортировка в лексикографическом порядке по возрастанию значений элементов, которые предварительно преобразуются в строки.

1
2
3
4
5
6
7
8
a = new Array(1,6,9,9,3,5);
function g(a,b)
{
if(a &gt; b) return 1;
if(a &lt; 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

1
2
3
4
5
6
7
8
9
10
11
12
//Пример сортировки массива в лексикографическом порядке
//по убыванию значений элементов
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(начало, счетчик [,элементы])
Аргументы: начало и счетчик — любые числовые выражения
элементы — список любых выражений через запятую
Результат: новый массив

Аргумент начало задает индекс первого элемента удаляемой части, аргумент счетчик — количество удаляемых элементов.
Если заданы элементы, то они вставляются вместо удаленной части массива.

1
2
3
4
5
6
7
8
9
var x = new Array(10);
var y = new Array();
// Заполняем массив
for (i = 0; i &lt; 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()
Результат: строковое значение

1
2
3
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 — любые выражения
Результат: новая длина массива

1
2
3
4
5
6
7
var myColors=new Array("голубой", "зеленый", "красный");
var mySize=myColors.length;
alert("Длина массива:"+ mySize);
// Удаляем первый элемент массива
var mySize = myColors.unshift("черный", "белый");
alert("В массиве сейчас элементы: "+ myColors);
alert("Новая длина массива: "+mySize);

Оставить комментарий!

Вы должны быть в системе чтобы оставить комментарий.