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

30
labs/lab9/main.js

@ -3,5 +3,33 @@
function main(formName) { function main(formName) {
let result = document.getElementById("result"); 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