Урок 5 по JScript: Работа с массивами

Урок 5 по JScript: Работа с массивами Программирование на JSCRIPT

В этой публикации мы с вами изучим массивы Jscript языка. По своей природе Jscript массивы чем-то похожи на объекты, так как в них тоже содержится набор значений. Но, в объектах обращение к их значениям (методы и свойства) происходит по имени, а в массивах Jscript – по индексах. Все элементы массива имеют свой числовой индекс (только целые значения), нумерация начинается с нуля, при обращении к тому или иному элементу, прописывается имя массива, а далее, в квадратных скобках указывается номер (индекс).

Jscript позволяет создавать только одномерные массивы n-й длины.

Jscript массивы могут содержать любой тип данных: числа, строки, функции, объекты и даже ссылки на другие массивы – в этом случае можно формировать многомерные матрицы!

За создание нового массива Jscript отвечает встроенный объект Array, работу которого я более детально рассмотрел в статье «Array – встроенный объект для работы с массивами и объектами«.

Давайте посмотрим на следующий пример:

//************************************************
// Создание простых массивов JScript
// array.js
//************************************************
 
var arr1, arr2, arr3
 
arr1 = new Array();
arr2 = new Array(3);
arr3 = new Array(100, "строка", 3.5);
 
WScript.Echo (arr1);       //пусто
WScript.Echo (arr2);       //,,
WScript.Echo (arr3);       //100, "строка", 3.5
 
WScript.Echo (typeof(arr3));      //object

Тут мы объявили три переменные arr1, arr2 и arr3, далее, каждой переменной дали ссылку на объект Array с помощью ключевого слова new. Видим, что arr1 является массивом нулевой длины, arr2 – длина ровна 4 (нумерация идет с нуля) и arr3 – уже содержит значения: 100, «строка», 3.5 – тут присутствует целое, вещественное и значения типа строка. Видим, что функция typeof показала, что переменная arr3 имеет тип object.

Теперь давайте посмотрим, как происходит присвоение значений и обращение к ним:

//************************************************
// Назначение и вывод значений
// array_1.js
//************************************************
 
var arr
 
arr = new Array(3);
arr[0] = 100;
arr[1] = "строка";
arr[2] = true;
arr[3] = 4.5;
 
//Обе сточки являются аналогичными
WScript.Echo (arr);
WScript.Echo (arr[0] + "," + arr[1] + ","+ arr[2] + "," + arr[3]);

В данном примере показано, как происходит назначение и вывод значений по индексу. Если нужно произвести вывод всех значений в цикле, то удобно использовать цикл for…in, работу с ним я подробно рассмотрел в статье «for…in – цикл для работы с массивами и объектами«.

Хорошо, теперь давайте рассмотрим пример потруднее:

//************************************************
// Пример по сложнее
// array_2.js
//************************************************
 
var arr = new Array(2), arr_new = new Array(100, true, 300), obj_new = new Object()
 
fun_new = function(x,y){return x+y};
obj_new = {a:25, b:5, c:"новая строка"};
 
arr[0]=fun_new;
arr[1]=obj_new;
arr[2]=arr_new;
 
WScript.Echo (arr);
//Обращаемся к другому массиву
WScript.Echo (arr[2][0] + " " + arr[2][1] + " " +arr[2][2]);
//Вызываем функцию
WScript.Echo (arr[0](4,10));
//Получаем доступ к объекту
WScript.Echo (arr[1].c);

Как видим, в данном примере мы создали функцию (fun_new), объект (obj_new) и массив (arr_new). Всё это мы присвоили новому jscript массиву arr. Мы можем вызвать функцию и обратиться к свойству объекта через индекс, и можем обратиться к значениям arr_new, то есть, присваивая в качестве индекса другой массив, мы можем обратиться к его элементам тоже по индексу (arr[2][0], arr[2][1], arr[2][2]). Это позволяет формировать матрицы произвольного размера.

Скачать архив с примерами

Теперь, давайте рассмотрим так называемые литеральные массивы:

//************************************************
// Литералы
// array_3.js
//************************************************
 
var arr = [100,200,300,400,500];
var matrix = [[1,2,3],[4,5,6],[7,8,9]]
var neo = [[[1,2,3],[4,5,6],[7,8,9]],[[10,11,12],[13,14,15],[15,17,18]],[[4,7,0],[3,4,1],[0,7,4]]]
 
WScript.Echo (typeof(arr));
WScript.Echo (arr);
WScript.Echo (matrix);
 
WScript.Echo (matrix[1][2]);
WScript.Echo (neo[1][2][1]);

Как видим, в данном случае мы создали три массива Jscript: одномерный, двумерный (матрицу) и трехмерный, все значения мы прописали сразу, заключая их в квадратные скобки, при этом ключевого слова Array мы не использовали.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий