Упражнения JavaScript

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

  • Напишите функцию copyArr(arr), которая копирует массив не изменяя иригинал.

    var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка'];
    function arrayClone(arr) {
    
    // Ваш код
    
    }
    
    var arr1 = arrayClone(vegetables);
    
    document.writeln(arr1); // ['Капуста', 'Репа', 'Редиска', 'Морковка']
    
    Показать решение
  • Напишите код, который преобразовывает и объединяет все элементы массива в одно строковое значение. Элементы массива будут разделены запятой. Получите результат двумя разными методами.

    var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка'];
    
    // Ваш код
    
    document.writeln(str1); // "Капуста, Репа, Редиска, Морковка"
    document.writeln(str2); // "Капуста, Репа, Редиска, Морковка"
    
    Показать решение
  • Пользователь вводит многозначное число через promt. Напишите функцию colonOdd(num), которая принимает число num в качестве аргумента и вставляет двоеточие (:) между двумя нечетными числами. Например, если вводится число 55639217, то на выход должно быть 5:563:921:7.

    const num = prompt('Введите число', 55);
    
    function colonOdd (num) {
    
    // Ваш код
    
    }
    
    document.writeln(colonOdd(num)); // 5:5
    
    Показать решение
  • Пользователь вводит строку кириллицей разного регистра. Напишите функцию, которая принимает строку в качестве аргумента и заменяет регистр каждого символа на противоположный. Например, если вводится «КаЖдЫй ОхОтНиК», то на выходе должен быть массив [кАжДыЙ оХоТнИк].

    const str = prompt('Введите слово', 'КаЖдЫй ОхОтНиК');
    
    function changeRegister (str) { 
    
    // Ваш код
    
    }
    
    document.writeln(changeRegister(str)); // [кАжДыЙ оХоТнИк] 
    
    Показать решение
  • Напишите функцию 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] 
    
    Показать решение
  • Високосным годом является каждый четвертый год и века начинаются только на высокостные года, отличие високосного года от обычного заключается в появлении 366-го дня. Напишите функцию chooseYears(start, end), которая принимает в качестве аргументов диапозон лет и возвращает массив високосных лет в заданном диапазоне.

    function chooseYears(start, end) {
    
    // Ваш код
    
    }
    
    document.writeln(chooseYears(2000,2018)); // [2000,2004,2008,2012,2016]
    
    Показать решение
  • Используя метод 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));
    
    Показать решение
  • Напишите функцию 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 
    
    Показать решение
  • Напишите функцию 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 
    
    Показать решение
  • Напишите код, который создаёт массив элементов представляющих собой сумму соответствующих элементов заданных массивов.

    var arr1 = [1, 2, 3, 4, 5];
    var arr2 = [4, 5, 6];
    
         ваш код
    
    document.writeln(arr3); // [5,7,9,4,5]  
    
    Показать решение
  • Напишите функцию 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  
    
    Показать решение
  • Напишите функцию 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
    
    Показать решение
  • Напишите функцию 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] 
    
    Показать решение
  • Напишите функцию 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]
    
    Показать решение
  • Напишите функцию 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
    
    Показать решение
  • Напишите код, который находит наиболее часто используемый элемент массива.

    var arr1=[7, 'z', 'z', 'z', 3, 7, 'z', 7, 'z', 3, 5, 9, 7];  
    
         ваш код
    
    document.writeln(output); // z повторяется 5 раз 
    
    Показать решение
  • Напишите функцию sumOfSquares(arr), которая возвращает сумму квадратов значений массива.

    function sumOfSquares(arr) { 
    
         ...ваш код...
    }
    
    document.writeln(sumOfSquares([1, 2, 3, 4, 5])); // 55
    
    Показать решение
  • Напишите код, который определяет сумму и произведение значений массива.

    var arr = [ 1, 2 , 3 , 4 , 5 , 6 , 7, 8 ,9];
    
         ...ваш код...
    
    document.writeln(" Сумма : "+sum + "Произведение : " + product); /* Сумма : 45
                                         Произведение : 362880 */
    
    Показать решение
  • Напишите функцию 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 ]
    
    Показать решение
  • Напишите код, который отсортирует массив объектов litmir по значению свойства title.

    var litmir = [ 
       { author: 'Хэленка', title: 'Улетела сказка'},
       { author: 'Коул Кресли', title: 'Восстание Аркан'},
       { author: 'Райчел Мид', title: 'Золотая лилия'}
       ];
    
         ...ваш код...
    
    // Восстание Аркан Золотая лилия Улетела сказка 
    
    
    Показать решение
  • Напишите функцию 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
    
    Показать решение
  • Напишите функцию propertyValue(array, key), которая принимает в качестве аргументов массив объектов и имя свойства, а затем возвращает все значения данного свойства из массива объектов.

    var litmir = [ 
       { author: 'Хэленка', title: 'Улетела сказка'},
       { author: 'Коул Кресли', title: 'Восстание Аркан'},
       { author: 'Райчел Мид', title: 'Золотая лилия'}
       ];
    
    function propertyValue(array, key) {
    
         ...ваш код...
    
    }
    
    propertyValue(litmir, 'title');  // Улетела сказка,Восстание Аркан,Золотая лилия
    propertyValue(litmir, 'author'); // Хэленка,Коул Кресли,Райчел Мид 
    
    Показать решение
  • Напишите функцию startingSubstring(arr), которая возвращает общую начальную подстроку в массиве строк.

    var arr1 = ['Капуста', 'Капитал'];
    var arr2 = ['Репа', 'Редиска'];
    function startingSubstring(arr) {
    
    // Ваш код
    
    }
    
    var res1 = startingSubstring(arr1);
    var res2 = startingSubstring(arr2);
    
    document.writeln(res1); // Кап
    document.writeln(res2); // Ре
    
    Показать решение
  • Напишите функцию removeItem(arr, num), которая удаляет определенный элемент из массива.

    function removeItem(arr, num) {
    
    // Ваш код
    
    }
    
    document.writeln(removeItem([3, 5, 7, 8, 5], 5)); // [3,7,8] 
    
    Показать решение
  • Напишите функцию randomElement(arr), которая возвращает случайный элемент из массива.

    function randomElement(arr) {
    
    // Ваш код
    
    }
    
    var arr = [24, 45, 22, 35, 43];
    document.writeln(randomElement(arr)); // 22
    
    Показать решение
  • Напишите функцию 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] 
    
    Показать решение
  • Напишите функцию 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"]
    
    Показать решение
  • Напишите функцию 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 
    
    Показать решение
  • Напишите функцию 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 
    
    Показать решение
  • Используя метод map() напишите код, который получает из массива строк новый массив, содержащий их длины.

    var vegetables = ['Капуста', 'Репа', 'Редиска', 'Морковка'];
    
    // Ваш код
    
    alert( vegetableLength ); // 7,4,7,8
    
    Показать решение
  • Имеется массив простых чисел: 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]
    
    Показать решение
  • Напишите код, который получает из массива чисел новый массив, содержащий пары чисел, которые в сумме должны быть равны семи: (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]
    
    
    Показать решение
  • Перед вами переменная, содержащая строку. Напишите код, создащий массив, который будет состоять из первых букв слов строки str. При написании данного кода, позаимствуйте у объека Array метод filter.

    var str = "Каждый охотник желает знать, где сидит фазан."; 
    
    // Ваш код 
    
    document.write(array);  // [К,о,ж,з,г,с,ф]
    
    Показать решение
  • Перед вами переменная, содержащая строку. Напишите код, создащий массив, который будет состоять из строк, состоящих из предыдущего, текущего и следующего символа строки str. При написании данного кода, позаимствуйте у объека Array метод map.

    var str = "JavaScript"; 
    
    // Ваш код 
    
    document.writeln(arr); // [Ja,Jav,ava,vaS,aSc,Scr,cri,rip,ipt,pt] 
    
    Показать решение
  • Напишите код, преобразующий массив цифр, которые располагаются неупорядоченно, в массив цифр расположенных по убыванию их значений.

    var numerics = [5, 7, 2, 9, 3, 1, 8];
    
    // Ваш код 
    
    document.writeln(numerics); // [9,8,7,5,3,2,1] 
    
    Показать решение

Напишите код, объединяющий три массива цифр, и располагающий, с помощью метода 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>.
  • Допускаются ссылки на онлайн-песочницы (codepen, plnkr, JSBin и др.).