Мегаобучалка Главная | О нас | Обратная связь


Лабораторная работа № 6. Работа с массивами на JavaScript



2019-11-13 576 Обсуждений (0)
Лабораторная работа № 6. Работа с массивами на JavaScript 0.00 из 5.00 0 оценок




 

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

Отсчет индексов массивов в языке JavaScript начинается с нуля и для них используются 32-битные целые числа. Массивы в JavaScript являются динамическими: они могут увеличиваться и уменьшаться в размерах по мере необходимости; поэтому нет необходимости объявлять фиксированные размеры массивов при их создании или повторно распределять память при изменении их размеров.

Создать массив проще всего с помощью литерала, который представляет собой простой список разделенных запятыми элементов в квадратных скобках. Значениями литерала массива могут быть константы, выражения, литералы объектов:

 

var empty = [];                                // Пустой массив

var numbers = [2, 3, 5, 7, 11];         // Массив с пятью числовыми элементами

var misc = [ 1.1, true, "a", ];            // 3 элемента разных типов + завершающая запятая

var base = 1024;

var table = [base, base+1, base+2, base+3]; // Массив с переменными

var arrObj = [[1,{x:1, y:2}], [2, {x:3, y:4}]]; // 2 массива внутри, содержащие объекты

 

Синтаксис литералов массивов позволяет вставлять необязательную завершающую запятую, то есть литерал [,,] соответствует массиву с двумя элементами, а не с тремя.

Другой способ создания массива – конструктор Array(), который можно вызвать тремя разными способами: без аргументов; с единственным числовым аргументом, определяющим длину массива; с явным указанием значений первых двух или более элементов или одного нечислового элемента:

 

var arr = new Array();                           // пустой массив, эквивалентный литералу []

var arr = new Array(10);                        // пустой массив, указанной длины

var arr = new Array(5, 4, 3, 2, 1, "тест");   //массив с явным указанием элементов

 

Массив является специализированной разновидностью объекта, поэтому квадратные скобки, используемые для доступа к его элементам, действуют аналогично доступу к свойствам объекта. Интерпретатор JavaScript преобразует указанные в скобках числовые индексы в строки, например, индекс 1 – в строку "1", а затем использует эти строки как имена свойств.

Следует четко отличать индексы в массиве от имен свойств объектов. Все индексы массива являются именами свойств, но только свойства с именами, представленными целыми числами являются индексами. Все массивы являются объектами, и к ним можно добавлять свойства с любыми именами. Однако если затрагиваются свойства, которые являются индексами массива, то массивы реагируют на это, обновляя при необходимости значение свойства length.

В качестве индексов массивов допускается использовать отрицательные и нецелые числа. В этом случае числа преобразуются в строки, которые используются как имена свойств.

Добавление и удаление элементов массива. Самый простой способ добавления элементов массива – это  присваивание значений его новым индексам. Для добавления одного или более элементов в конец массива можно также использовать метод push():

 

var arr = [];               // Создать пустой массив

arr.push('zero');        // Добавить значение в конец массива

arr.push('one',2);      // Добавить еще два значения в массив

 

Добавить элемент в конец массива можно также, присвоив значение элементу arr[arr.length]. Для вставки элемента в начало массива можно использовать метод unshift(), при этом существующие элементы в массиве смещаются в позиции с более высокими индексами.

Удалять элементы массива можно как обычные свойства объекта – с помощью оператора delete:

 

var arr = [1,2,'three'];

delete arr[2];

2 in arr;                // false, индекс 2 в массиве не определен

arr.length;                // 3: оператор delete не изменяет свойство length массива

 

Многомерные массивы. JavaScript не поддерживает «настоящие» многомерные массивы, но позволяет имитировать их при помощи массива из массивов. Для доступа к элементу данных в массиве массивов достаточно дважды использовать оператор [ ].

Методы класса Array:

Array.join() – преобразует все элементы массива в строки, объединяет их и возвращает получившуюся строку.

Array.reverse() – меняет порядок следования элементов в массиве на обратный и возвращает переупорядоченный массив;

Array.sort() – сортирует элементы в исходном массиве и возвращает отсортированный массив;

Array.concat() – создает и возвращает новый массив, содержащий элементы исходного массива, для которого был вызван метод concat(), и значения всех переданных ему аргументов;

Array.slice() – возвращает фрагмент, или подмассив указанного массива.

Array.splice() – универсальный метод, выполняющий вставку или удаление элементов массива;

push() и pop() – позволяют работать с массивами как со стеками.

unshift() и shift() – ведут себя почти так же, как push() и pop(), за исключением того, что они вставляют и удаляют элементы в начале массива, а не в конце.

 

Порядок выполнения работы: выполнить следующие четыре задания, вариарты которых приведены в таблице 6.1.

Задание 1. Создать одномерный числовой массив R из k элементов. Добавить m текстовых элементов в начало массива R и n текстовых – в его конец.

Задание 2. Создать двухмерный массив размерностью m ´ n и заполнить случайными равномерно распределенными числами. Строки с четными номерами рассортировать

Задание 3. Создать двухмерный массив размерностью k ´ m, содержащий текстовые и числовые элементы. Используя метод Array.join() преобразовать все числовые элементы массива в строки; изменить порядок следования элементов массива на обратный;

Задание 4. Создать двухмерный массив размерностью k ´ m числовых и текстовых элементов, Используя методы unshift() и push() добавить k-4 элементов в начало и конец массива, и методы shift() и pop() – удалить m-3 элементов из начала и конца заданного массива.

 

Таблица 6.1 – Варианты заданий

 

 

Задание 1

Задание 2

Задание 3 Задание 4
строки k, m, n m, n сортировать k, m m, k
  2 3 4 5 6 7
1 ['a', 'b', 'c'] 3, 2, 4 4, 6 по возрастанию 7, 8 6, 9
2 [1, 2, 3] 4, 3, 2 5, 8 по убыванию 6, 5 7, 6
3 ['p', 'n', 'k'] 2, 1, 5 3, 5 по возрастанию 8, 6 8, 9
4 [7, 5, 8] 4, 2, 3 4, 6 по убыванию 5, 8 5,7
5 ['r', 's', 't'] 3, 4, 4 5, 7 по возрастанию 6, 7 5, 8
6 [2, 6, 8] 5, 3, 2 4, 6 по убыванию 5, 8 5, 9
7 ['k', 'm', 's'] 4, 1, 3 5, 8 по возрастанию 8, 7 6, 5
8 [3, 7, 5] 2, 5,4 3, 6 по убыванию 6, 8 6, 7
9 ['q', 'z', 's'] 5, 1, 3 4, 5 по возрастанию 5, 6 6, 8
10 [2, 9, 4] 3, 4, 5 5, 7 по убыванию 8, 8 6, 6
11 ['t', 'r', 'n'] 4, 2, 3 2, 6 по возрастанию 7, 7 7, 6
12 [4, 7, 2] 3, 5,2 3, 8 по убыванию 6, 5 7, 7

 

Контрольные вопросы

1. Какие методы создания массивов Вы знаете?

2. Что такое динамический массив в JavaScript?

3. Что мажет быть элементом массива в JavaScript?

4. С какого значения ведется отсчет индексов массивов в JavaScript?

5. Как построить доступ к элементу массива?

6. Какой тип может иметь индекс элемента массива?

7. Как понимать: "массив – специализированная разновидность объекта"?

8. Какие методы используются для добавления и удаления элементов массива?

9. Как в JavaScript поддерживается работа с многомерными массивами?

10. Какие методы класса Array Вы знаете?

 

 



2019-11-13 576 Обсуждений (0)
Лабораторная работа № 6. Работа с массивами на JavaScript 0.00 из 5.00 0 оценок









Обсуждение в статье: Лабораторная работа № 6. Работа с массивами на JavaScript

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (576)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)