JavaScript: заполнить массив значениями в указанных границах
Массив 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 программирования