Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Задачи и упражнения по JavaScript. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
если a > b; отрицательное значение, если a < b; если равны – можно 0, но вообще – не важно, что возвращать, если их вза­имный порядок не имеет значения.
concat(массив/значения) в новый массив, записывает
содержание исходного массива и значения всех аргументов, переданных методу:
var x=[100,-6,25,1];
var x2=x.concat(7,12); //100,-6,25,1,7,12
slice(индекс1 [, индекс2]) возвращает фрагмент или
подмассив исходного массива:
var x=[1,2,3,true,100,-6];
var x1=x.slice(1,5); //2,3,true,100
splice(индекс, количество[элемент1,…, элементk]),
если метод имеет два параметра,то из исходного массива уда­ляет “количество” элементов, начиная с индекса “индекс”, и возвращает массив из удаленных элементов, иначе в массив еще вставляются “элемент1,…, элементk”:
а) var x=[1,2,3,true,100,-6];
var x1=x.splice(1,4); // x = 1,-6; x1 = 2,3,true,100
б) var x=[1,2,3,true,100,-6];
var x1=x.splice(1,4,"a","B"); // x = 1,a,B,-6;
x1 = 2,3,true,100
Методы для добавления и удаления элементов
unshift(значение) добавляет элемент в начало массива:
var x=[1,2,3,true,100,-6]; x.unshift (0); //0,1,2,3,true,100,-6
push(значение)добавляет элемент в конец массива:
var x=[1,2,3,true,100,-6]; x. push (0); //1,2,3,true,100,-6,0
shift() удаляет первый элемент массива:
var x=[1,2,3,true,100,-6]; x.shift(); //2,3,true,100,-6
51
рор() удаляет последний элемент массива:
var x=[1,2,3,true,100,-6]; x.рор (); //1,2,3,true,100
Ассоциативные массивы (везде так сделать)
В ассоциативных массивах обращение к элементу мас­сива происходит по индексу, представляющему собой строку.
var Mass = new Array();
Mass["Один"] = 1;
Mass["Два"] = 2;
Mass["Три"] = 3; Перебор всех элементов ассоциативного массива осуществля­ется с помощью цикла for…in. Например, распечатать эле­менты массива можно следующим образом:
for (var Name in Mass) {
document.write(Name + " = " + Mass[Name] + "<br>");
Упражнения
Задание 1
Написать скрипт, который заполняет массив следую­щим образом: в первый элемент запишите '1', во второй '22', в третий '333' и т.д.
Задание 2
Написать скрипт, который заполняет массив следующим образом: в первый элемент записывает 'x', во второй 'xx', в тре­тий 'xxx' и т.д.
Задание 3
Дан массив с числами. Определить, сколько элементов с начала массива надо сложить, чтобы в сумме получилось больше 10-ти.
52
Задание 4
Дан массив с числами. Проверьте, есть ли в нем два оди­наковых числа подряд. Если есть – выведите 'да', а если нет – выведите 'нет'.
Задание 5
Дан массив чисeл arr. Создать массивы, в которых эле­менты массива arr расположены в обратном порядке: arr1, ис­пользуя метод reverse, и arr2 без использования метода.
Задание 6
Переменная lang может принимать два значения: 'ru' и 'en'. Если она имеет значение 'ru', то в переменную arr записать массив дней недели на русском языке, а если имеет значение 'en' – то на английском. Решить задачу, используя два опера­тора if.
Задание 7
Переменная lang может принимать два значения: 'ru' и 'en'. Если она имеет значение 'ru', то в переменную arr записать массив дней недели на русском языке, а если имеет значение 'en' – то на английском. Решить задачу, используя оператор switch-case.
Задание 8
Дан двумерный массив чисел, например [[1, 2], [3, 4, 5], [6]]. Найти сумму элементов этого массива.
Задание 9
Дан двумерный массив символов. Выписать предложе­ние, записанное в этом массиве, если каждая его строка это есть отдельное слово предложения.
53
Задание 10
Заполнить квадратную матрицу n × n так, чтобы все числа первого столбца и первой строки были равны 1, а каж­дое из оставшихся чисел равно сумме верхнего и левого сосе­дей. Вывести на экран заполненную матрицу.
Задание 11
Переменная lang может принимать два значения: 'ru' и 'en'. Если она имеет значение 'ru', то в переменную arr записать массив дней недели на русском языке, а если имеет значение 'en' – то на английском. Решить задачу через многомерный массив.
Задание 12
Создать двухмерный массив. Первые два ключа – это 'ru' и 'en'. Пусть первый ключ содержит элемент, являющийся массивом названий дней недели по-русски, а второй – по-ан­глийски. Вывести с помощью этого массива понедельник по­русски и среду по-английски.
Задание 13
Пусть многомерный массив arr содержит названия цве­тов по-русски и по-английски. Ввести название цвета по по­русски и получить его английский эквивалент, и наоборот.
Задание 14
Дан трехмерный массив с числами, например [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]. Найти сумму элементов этого массива.
Задания на массивы с использованием
пользовательских функций
Задание 1
Написать скрипт, который сортирует массив чисел по убыванию. Сортировку оформить в виде функции, поместив
54
ее в js-файл. Cоздать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 2
Написать скрипт, который сортирует массив чисел сле­дующим образом: сначала располагаются положительные числа, потом отрицательные. Сортировку оформить в виде функции, поместив ее в js-файл. Cоздать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 3
Написать скрипт, который сортирует массив чисел сле­дующим образом: сначала располагаются четные числа, по­том нечетные. Сортировку оформить в виде функции, поме­стив ее в js-файл. Cоздать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 4
Написать скрипт, который сортирует массив чисел сле­дующим образом: сначала располагаются нечетные числа, по­том четные. Сортировку оформить в виде функции, поместив ее в части head html-файла. Cоздать объект типа Array и отсор­тировать его соответствующим образом, используя функцию этого класса.
Задание 5
Написать скрипт, который сортирует массив чисел сле­дующим образом: сначала располагаются простые числа, по­том составные. Сортировку оформить в виде функции, поме­стив ее в части head html-файла. Cоздать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
55
Задание 6
Написать скрипт, который сортирует массив чисел сле­дующим образом: сначала располагаются числа, которые де­лятся на 2, потом на 3 и т.д. Сортировку оформить в виде функции, поместив ее в части head html-файла. Создать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 7
Написать скрипт, который располагает элементы мас­сива в обратном порядке от исходного. Оформить в виде функции, поместив ее в части head html-файла. Создать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 8
Написать скрипт, который сортирует массив строк по возрастанию их длин. Сортировку оформить в виде функции, поместив ее в части head html-файла. Создать объект типа Ar­ray и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 9
Написать скрипт, который сортирует массив строк по убыванию их длин. Сортировку оформить в виде функции, по­местив ее в части head html-файла. Создать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 10
Написать скрипт, который сортирует массив строк по возрастанию количества гласных в строке. Сортировку офор­мить в виде функции, поместив ее в части head html-файла. Создать объект типа Array и отсортировать его соответствую­щим образом, используя функцию этого класса.
56
Задание 11
Написать скрипт, который сортирует массив строк по возрастанию без учета регистра. Сортировку оформить в виде функции, поместив ее в части head html-файла. Cоздать объект типа Array и отсортировать его соответствующим образом, используя функцию этого класса.
Задание 12
Написать скрипт, который сортирует массив строк по убыванию их длин. Сортировку оформить в виде функции, по­местив ее в js-файл. Cоздать объект типа Array и отсортиро­вать его соответствующим образом, используя функцию этого класса.
Задание 13
Написать скрипт, который удаляет из массива четные числа. Операцию оформить в виде функции, поместив ее в js­файл. Cоздать объект типа Array и выполнить над ним соот­ветствующие действия, используя функцию этого класса.
Задание 14
Написать скрипт, который удаляет из массива i чисел, начиная с j-го. Операцию оформить в виде функции, поместив ее в js-файл. Cоздать объект типа Array и выполнить над ним соответствующие действия, используя функцию этого класса.
Задание 15
Написать скрипт, который заменяет i-е число в массиве, последовательностью из j чисел. Операцию оформить в виде функции, поместив ее в js-файл. Cоздать объект типа Array и выполнить над ним соответствующие действия, используя функцию этого класса.
57
Задание 16
Написать скрипт, который вставляет после i-го числа в массиве, последовательность из j чисел. Операцию оформить в виде функции, поместив ее в js-файл. Cоздать объект типа Array и выполнить над ним соответствующие действия, ис­пользуя функцию этого класса.
Задание 17
Дан массив чисел. Найти непрерывный подмассив ис­ходного массива, сумма элементов которого максимальна. Написать функцию getMaxSubSum (массив), которая возвра­щает эту сумму. Если все элементы отрицательные, то сумма равна нулю. Например, getMaxSubSum([-1, 2, 3, -9, 11]); //11
2.5. Функции
Функция – это блок кода, который имеет свое имя и его можно вызывать по этому имени. Имя функции не должно совпадать с именем какой-либо переменной. Правила задания имен функциям, такие же, как и правила задания имен пере­менным.
Синтаксис определения функции следующий:
function имя_функции([список параметров])
{
блок кода;
}
Основная цель функции заключается в том, чтобы изба­вить программу от дублирования кода. Чтобы функция зара­ботала, ее надо вызвать:
имя_функции([список значений параметров]);
58
Способы создания пользовательских функций
Ниже представлены различные способы создания функ­ций на примере вычисления суммы двух переменных:
классический способ
function a1(x, y) { return x + y; }
как объект класса Function
var a1 = new Function('x', 'y', 'return x + y');
анонимные функции
var a1 = function(x, y) { return x + y; };
Вызов функций во всех случаях будет одинаковым, например:
var a = a1(3, 4).
Параметры функции
JavaScript очень лоялен по поводу количества аргумен­тов, передаваемых функции. Если вы передадите слишком много, лишние аргументы будут проигнорированы. Слиш­ком мало – отсутствующим будет назначено значение undefined.
Оператор || часто используется для создания необяза-
тельных параметров в функции. Если первое выражение не может быть преобразовано в true, то возвращается значение второго выражения:
function f_print(str) {
str = str || "Значение по умолчанию";
window.alert(str);
}
f_print(); // "Значение по умолчанию"
f_print("Значение указано"); // "Значение указано"
Аргументы функции являются элементами массива ar-
guments.
Массив аргументов доступен только внутри тела функ­ции. Получить доступ к аргументу можно, указав его индекс,
59
а свойство length позволяет определить количество аргумен­тов, переданных функции. Например, функцию вычисления суммы можно переписать следующим образом:
function f_Sum(x, y) {
return arguments[0]+arguments[1];
}
alert(f_Sum(2, 3)); // 5 При использовании массива аргументов можно передать функции больше аргументов, чем первоначально объявлено.
function f_Sum(x, y) {
var z = 0;
for (var i=0, c=arguments.length; i<c; i++) {
z += arguments[i];}
return z;
}
alert(f_Sum(2,3,5,1));
Простые переменные передаются в функцию по значе-
нию.
function val(a) {
a=22;
}
var a=1;
alert(a); //1
val (a);
alert(a); //1
Массивы в функцию передаются по ссылке. Поэтому
результат выполнения следующего программного кода будет таковым:
function f_Sum(a) {
a[1]=100;
}
var a=[1,2,3,4];
alert(a); // 1,2,3,4
f_Sum(a);
alert(a); // 1,100,3,4
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]