Очень многие задачи программирования основаны на манипулировании целыми коллекциями данных, и подраумевают свободное владение методами обработки массивов в JavaScript. Изучение этих методов является также отличным способом достижения очередного уровня мастерства в JavaScript.
-
1. Клонирование массива
Напишите функцию
copyArr(arr)
, которая копирует массив не изменяя иригинал.var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка']; function arrayClone(arr) { // Ваш код } var arr1 = arrayClone(vegetables); document.writeln(arr1); // ['Капуста', 'Репа', 'Редиска', 'Морковка']
-
2. Преобразование массива в строку
Напишите код, который преобразовывает и объединяет все элементы массива в одно строковое значение. Элементы массива будут разделены запятой. Получите результат двумя разными методами.
var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка']; // Ваш код document.writeln(str1); // "Капуста, Репа, Редиска, Морковка" document.writeln(str2); // "Капуста, Репа, Редиска, Морковка"
-
3. Двоеточие между нечётными числами
Пользователь вводит многозначное число через
promt
. Напишите функцию colonOdd(num), которая принимает число num в качестве аргумента и вставляет двоеточие(:)
между двумя нечетными числами. Например, если вводится число 55639217, то на выход должно быть 5:563:921:7.const num = prompt('Введите число', 55); function colonOdd (num) { // Ваш код } document.writeln(colonOdd(num)); // 5:5
-
4. Замена регистра символов
Пользователь вводит строку кириллицей разного регистра. Напишите функцию, которая принимает строку в качестве аргумента и заменяет регистр каждого символа на противоположный. Например, если вводится
«КаЖдЫй ОхОтНиК»
, то на выходе должен быть массив[кАжДыЙ оХоТнИк]
.const str = prompt('Введите слово', 'КаЖдЫй ОхОтНиК'); function changeRegister (str) { // Ваш код } document.writeln(changeRegister(str)); // [кАжДыЙ оХоТнИк]
-
5. Удалить повторяющиеся элементы массива
Напишите функцию
removeDuplicates(arr)
, которая возвращает массив, в котором удалены повторяющиеся элементы из массиваarr
(игнорируйте чувствительность к регистру).var arr = ["php", "php", "css", "css", "script", "script", "html", "html", "java" ]; function removeDuplicates(arr) { // Ваш код } document.writeln(result); // [php,css,script,html,java]
-
6. Найдите високосные годы
Високосным годом является каждый четвертый год и века начинаются только на высокостные года, отличие високосного года от обычного заключается в появлении 366-го дня. Напишите функцию
chooseYears(start, end)
, которая принимает в качестве аргументов диапозон лет и возвращает массив високосных лет в заданном диапазоне.function chooseYears(start, end) { // Ваш код } document.writeln(chooseYears(2000,2018)); // [2000,2004,2008,2012,2016]
-
7. Отобразить элементы в случайном порядоке
Используя метод
sort
перепишите предсталенный ниже код, который с помощью циклаfor
случайно изменяет порядок расстановки элементов массива.function shuffle(arr) { for (var i = arr.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } return arr; } var array = [0,1,2,3,4,5,6,7,8,9]; document.writeln(shuffle(array));
-
8. Получить первые элементы массива
Напишите функцию
getFirst(array, n)
, которая возвращает фрагмент массива, содержащий первые 'n' элементов массива.var array = [1,2,3,4,5,6,7,8,9]; function getFirst(array, n) { ваш код }; document.writeln(getFirst(array)); // 1 document.writeln(getFirst(array, 4)); // 1,2,3,4 document.writeln(getFirst(array,-3)); // 1,2,3,4,5,6
-
9. Получить последние элементы массива
Напишите функцию
getLast(array, n)
, которая возвращает фрагмент массива, содержащий последние 'n' элементов массива.var array = [1,2,3,4,5,6,7,8,9]; function getLast(array, n) { ваш код }; document.writeln(getLast(array)); // 9 document.writeln(getLast(array, 4)); // 6,7,8,9 document.writeln(getLast(array, 12)); // 1,2,3,4,5,6,7,8,9
-
10. Сумма элементов двух массивов
Напишите код, который создаёт массив элементов представляющих собой сумму соответствующих элементов заданных массивов.
var arr1 = [1, 2, 3, 4, 5]; var arr2 = [4, 5, 6]; ваш код document.writeln(arr3); // [5,7,9,4,5]
-
11. Количество повторяющихся элементов в массиве
Напишите функцию
countIdentic(arr)
, которая возвращает количество повторяющихся элементов в массиве.function countIdentic(arr) { ваш код } countIdentic([3, 3, 7, 7, 3, 3, 4, 5, 5, 8, 8, 8]) // 4 countIdentic([15,14,13,19,13,14,14,14,7,9,9]) // 3
-
12. Разворачивание массива массивов
Напишите функцию
expand(arr)
, которая разворачивает вложенный массив любой глубины.var arr1 = [1, [2,[3,[4]]]]; var arr2 = [1, [2], [3, [[4]]],[5,6]]; function expand(arr) { ваш код } document.writeln(expand(arr1)); // 1,2,3,4 document.writeln(expand(arr2)); // 1,2,3,4,5,6
-
13. Объединить два массива без дублирования элементов
Напишите функцию
union
, которая возвращает массив состоящий только из уникальных элементов из каждого массива.var array1 = [5, 2, 1, -10, 8]; var array2 = [5, 2, 1, -9, 3, 7]; var union = function(array1, array2) { ваш код } document.writeln(union(array1, array2)); // [-10,8,5,2,1,-9,3,7]
-
14. Разница между двумя массивами
Напишите функцию
union
, которая возвращает массив, содержащий все элементы arr1, которые не находятся в arr2 и наоборот.var arr1 = [1, 2, 'a']; var arr2 = [1, 2, 3, 4, 'b']; function arrayDiff(arr1, arr2) { ваш код } document.writeln(arrayDiff(arr1, arr2)); // [a,3,4,b]
-
15. Сортировка массива по убыванию
Напишите функцию
compareNumbers(arr)
, которая возвращает массив, элементы которого отсортированы по убыванию их значений.var numbers = [3, 8, 7, 6, 5, -4, 3, 2, 1]; function compareNumbers(arr){ ваш код } compareNumbers(numbers); // -4,1,2,3,3,5,6,7,8
-
16. Наиболее часто используемый элемент массива
Напишите код, который находит наиболее часто используемый элемент массива.
var arr1=[7, 'z', 'z', 'z', 3, 7, 'z', 7, 'z', 3, 5, 9, 7]; ваш код document.writeln(output); // z повторяется 5 раз
-
17. Сумма квадратов значений массива
Напишите функцию
sumOfSquares(arr)
, которая возвращает сумму квадратов значений массива.function sumOfSquares(arr) { ...ваш код... } document.writeln(sumOfSquares([1, 2, 3, 4, 5])); // 55
-
18. Сумма и произведение значений массива
Напишите код, который определяет сумму и произведение значений массива.
var arr = [ 1, 2 , 3 , 4 , 5 , 6 , 7, 8 ,9]; ...ваш код... document.writeln(" Сумма : "+sum + "Произведение : " + product); /* Сумма : 45 Произведение : 362880 */
-
19. Удаление ложных значений из массива
Напишите функцию
filterFalse(arr)
, которая очищает массив от ложных (false) значений: false, null, undefined, 0, –0, NaN и "" (пустя строка).array = [NaN, 0, 77, false, -17, '',undefined, 99, null]; function filterFalse(arr) { ...ваш код... } document.writeln(filterFalse(array)); // [ 77, -17, 99 ]
-
20. Сортировка массива объектов
Напишите код, который отсортирует массив объектов
litmir
по значению свойстваtitle
.var litmir = [ { author: 'Хэленка', title: 'Улетела сказка'}, { author: 'Коул Кресли', title: 'Восстание Аркан'}, { author: 'Райчел Мид', title: 'Золотая лилия'} ]; ...ваш код... // Восстание Аркан Золотая лилия Улетела сказка
-
21. Найти пары чисел, сумма которых равна заданному значению
Напишите функцию
findCouple(array, number)
, которая ищет в массиве все пары целых чисел, сумма которых равна заданному значению.var num = 5; var arr = [1, 6, 5, 2, 7, 5, 1, 4, 3, 9, 8, 11, 10, 18]; function findCouple(array, number) { ...ваш код... } document.writeln(findCouple(arr, num)); // Ваша пара чисел: 1 + 4,Ваша пара чисел: 2 + 3
-
22. Найти все значения данного свойства в массиве объектов
Напишите функцию
propertyValue(array, key)
, которая принимает в качестве аргументов массив объектов и имя свойства, а затем возвращает все значения данного свойства из массива объектов.var litmir = [ { author: 'Хэленка', title: 'Улетела сказка'}, { author: 'Коул Кресли', title: 'Восстание Аркан'}, { author: 'Райчел Мид', title: 'Золотая лилия'} ]; function propertyValue(array, key) { ...ваш код... } propertyValue(litmir, 'title'); // Улетела сказка,Восстание Аркан,Золотая лилия propertyValue(litmir, 'author'); // Хэленка,Коул Кресли,Райчел Мид
-
23. Общая стартовая подстрока в массиве строк
Напишите функцию
startingSubstring(arr)
, которая возвращает общую начальную подстроку в массиве строк.var arr1 = ['Капуста', 'Капитал']; var arr2 = ['Репа', 'Редиска']; function startingSubstring(arr) { // Ваш код } var res1 = startingSubstring(arr1); var res2 = startingSubstring(arr2); document.writeln(res1); // Кап document.writeln(res2); // Ре
-
24. Удалить определенный элемент из массива
Напишите функцию
removeItem(arr, num)
, которая удаляет определенный элемент из массива.function removeItem(arr, num) { // Ваш код } document.writeln(removeItem([3, 5, 7, 8, 5], 5)); // [3,7,8]
-
25. Вернуть случайный элемент из массива
Напишите функцию
randomElement(arr)
, которая возвращает случайный элемент из массива.function randomElement(arr) { // Ваш код } var arr = [24, 45, 22, 35, 43]; document.writeln(randomElement(arr)); // 22
-
26. Массив с заданным количеством элементов
Напишите функцию
arrayFilled(len, value)
, которая возвращает массив с заданным количествомlen
элементовvalue
.function arrayFilled(len, value) { // Ваш код } document.writeln(arrayFilled(5, 1)); // [1,1,1,1,1] document.writeln(arrayFilled(4, 12)); // [12,12,12,12]
-
27. Переместить элемент массива из одной позиции в другую
Напишите функцию
moveElement(arr,from,to)
, которая позволяет переместить элемент массива из позицииfrom
в позициюto
.function moveElement(arr,from,to) { // Ваш код } var arr = [ 'a', 'b', 'c', 'd', 'e']; document.writeln(moveElement(arr,3,1)); // ["a", "d", "b", "c", "e"]
-
28. Массив указанной длины
Напишите функцию
generateNumbers(start, len)
, которая генерирует массив заданной длиныlen
, заполненный целыми числами, где каждое число больше предыдущего на единицу.function generateNumbers(start, len) { // Ваш код } document.writeln(generateNumbers(0, 5)); // 0,1,2,3,4 document.writeln(generateNumbers(-5, 4)); // -5,-4,-3,-2
-
29. Массив, содержащий все целые числа между start и end
Напишите функцию
generateRange(start, end)
, которая генерирует массив заданной длиныlen
, заполненный целыми числами. Каждое последующее число в массиве должно быть больше предыдущего на единицу.function generateRange(start, end) { // Ваш код } document.writeln(generateNumbers(0, 5)); // 0,1,2,3,4 document.writeln(generateNumbers(-5, 4)); // -5,-4,-3,-2
-
30. Массив длин строковых элементов
Используя метод
map()
напишите код, который получает из массива строк новый массив, содержащий их длины.var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка']; // Ваш код alert( vegetableLength ); // 7,4,7,8
-
31. Массив сумм чисел
Имеется массив простых чисел: numbers = [2, 3, 5, 7, 11, 13, 17, 19]. Использую метод reduce() напишите функцию currentSums(numbers), которая возвращает новый массив из такого же числа элементов, в котором на каждой позиции будет находиться сумма элементов массива numbers до этой позиции включительно.
для numbers = [2, 3, 5, 7, 11, 13, 17] // ваш код currentSums(numbers); // [2, 2+3, 2+3+5, 2+3+5+7, 2+3+5+7+11, 2+3+5+7+11+13, 2+3+5+7+11+13+17] = [ 2,5,10,17,28,41,58]
-
32. Равные в сумме пары чисел
Напишите код, который получает из массива чисел новый массив, содержащий пары чисел, которые в сумме должны быть равны семи: (0:7), (1:6) и т.д.
var arr = [0, 1, 2, 3, 4, 5, 6, 7]; function sumSeven(numbers) { // ваш код } document.writeln(sumSeven(numbers)); // [0:7, 1:6, 2:5, 3:4]
-
33. Массив из первых букв
Перед вами переменная, содержащая строку. Напишите код, создащий массив, который будет состоять из первых букв слов строки str. При написании данного кода, позаимствуйте у объека Array метод filter.
var str = "Каждый охотник желает знать, где сидит фазан."; // Ваш код document.write(array); // [К,о,ж,з,г,с,ф]
-
34. Массив строк по три символа
Перед вами переменная, содержащая строку. Напишите код, создащий массив, который будет состоять из строк, состоящих из предыдущего, текущего и следующего символа строки str. При написании данного кода, позаимствуйте у объека Array метод map.
var str = "JavaScript"; // Ваш код document.writeln(arr); // [Ja,Jav,ava,vaS,aSc,Scr,cri,rip,ipt,pt]
-
35. Получить массив цифр по убыванию
Напишите код, преобразующий массив цифр, которые располагаются неупорядоченно, в массив цифр расположенных по убыванию их значений.
var numerics = [5, 7, 2, 9, 3, 1, 8]; // Ваш код document.writeln(numerics); // [9,8,7,5,3,2,1]
36. Слияние массивов
Напишите код, объединяющий три массива цифр, и располагающий, с помощью метода pop(), цифры в полученном массиве в порядке убывания их значений через пробел.
var a = [1,2,3]; var b = [4,5,6]; c = [7,8,9]; function getArr(a, b, c) { // Ваш код } getArr(a, b, c); // [9 8 7 6 5 4 3 2 1]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.