Browse Source

Добавлена работа 9

master
Krio 4 years ago
parent
commit
fde4b39680
  1. 15
      labs/lab9/desc.json
  2. 30
      labs/lab9/main.js

15
labs/lab9/desc.json

@ -1,14 +1,21 @@
{
"number": 9,
"task": "",
"task": "Создайте функцию, которая принимает массив имен супергероев и возвращает массив только имен супергероев, начинающихся на «человек». Верните имена в алфавитном порядке.",
"vars": [
[
{
"name": "",
"desc": "",
"name": "names",
"desc": "Имена супергероев, разделенных запятой",
"data": ""
}
],
[
{
"name": "names",
"desc": "Имена супергероев, разделенных запятой",
"data": "Баба Нюра, Супермен, Человек Паук, человек невидимка"
}
]
],
"complete": false
"complete": true
}

30
labs/lab9/main.js

@ -3,5 +3,33 @@
function main(formName) {
let result = document.getElementById("result");
result.textContent = "Результат: неопределенно";
let names = document.forms[formName].elements[0].value;
if (!(typeof names === "string")) {
result.textContent = "Ошибка: names не является строкой!";
return;
}
result.textContent = "Результат: " + getNewNames(names);
}
function getNewNames(names) {
let result = [];
names = names.split(",");
names.forEach( elem => {
if ( elem.trim().toLowerCase().startsWith("человек") ) {
result.push( elem.trim() );
}
});
result.forEach( (elem, index, array) =>
array[index] = elem.split(/\s+/).map(word => word[0].toUpperCase() + word.substring(1)).join(' ')
);
result.sort();
if (result.length == 0) {
return "подходящие имена отсутствуют";
} else {
return result.join(', ');
}
}

Loading…
Cancel
Save