кодесурса
«JavaScript

JavaScript: заполнить массив значениями в указанных границах

script1adsense2code
script1adsense3code

Массив JavaScript: упражнение 29 с решением

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

Тестовые данные:
console.log (num_string_range ('a', "z", 2));
["a", "c", "e", "g", "i", "k", "m", "o", "q", "s", "u", "w", " у "]

Пример решения:

HTML-код:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Write a JavaScript function to fill an array with values (numeric, string with one character) on supplied bounds.</title>
</head>
<body>
</body>
</html>

Код JavaScript:

function num_string_range(start, end, step) 
  {
    var range = [];
    if ((step === 0) || (typeof start =="undefined" || typeof end ==    "undefined") || (typeof start != typeof end))
     return false;
  
    if (end < start) {
        step = -step;
    }
    if (typeof start =="number") {
        while (step > 0 ? end >= start : end <= start) {
            range.push(start);
            start += step;
        }
        } 
      else if (typeof start =="string") {
        if (start.length != 1 || end.length != 1) {
            throw TypeError("Strings with one character are supported.");
        }
        start = start.charCodeAt(0);
        end = end.charCodeAt(0);
        while (step > 0 ? end >= start : end <= start) {
            range.push(String.fromCharCode(start));
            start += step;
        }
    }
   
    else
       {
        throw TypeError("Only string and number are supported");
        }
    return range;
}
console.log(num_string_range('a', "z", 2));
console.log(num_string_range("Z", "A", 2));
console.log(num_string_range(0, -5, 1));
console.log(num_string_range(0, 25, 5));
console.log(num_string_range(20, 5, 5));

Пример вывода:

 [ "А", "в", "е", "г", "I", "K", "м", "о", "д", "с", "U", "ш",» у "]
[ "Z", "X", "V", "Т", "Р", "Р", "Н", "л", "J", "Н", "F", "Д",» В "]
[0, -1, -2, -3, -4, -5]
[0,5,10,15,20,25]
[20,15,10,5]

Блок - схема:

«Блок-схема:

Версия ES6:

function num_string_range(start, end, step) 
  {
    const range = [];
    if ((step === 0) || (typeof start =="undefined" || typeof end ==    "undefined") || (typeof start != typeof end))
     return false;
  
    if (end < start) {
        step = -step;
    }
    if (typeof start =="number") {
        while (step > 0 ? end >= start : end <= start) {
            range.push(start);
            start += step;
        }
        } 
      else if (typeof start =="string") {
        if (start.length != 1 || end.length != 1) {
            throw TypeError("Strings with one character are supported.");
        }
        start = start.charCodeAt(0);
        end = end.charCodeAt(0);
        while (step > 0 ? end >= start : end <= start) {
            range.push(String.fromCharCode(start));
            start += step;
        }
    }
   
    else
       {
        throw TypeError("Only string and number are supported");
        }
    return range;
}
console.log(num_string_range('a', "z", 2));
console.log(num_string_range("Z", "A", 2));
console.log(num_string_range(0, -5, 1));
console.log(num_string_range(0, 25, 5));
console.log(num_string_range(20, 5, 5));

Демонстрация в реальном времени:

См. Pen JavaScript - Заполните массив значениями в указанных границах - array-ex- 29 с помощью w3resource ( @ w3resource ) в CodePen .


Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите функцию JavaScript, чтобы найти самую длинную общую начальную подстроку в наборе строк.
Далее: напишите функцию JavaScript для удаления определенного элемента из массива.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code