07.06.2012, 14:07
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
Оцените решенную задачу
Оцените решенную задачу...Она простая, так что не судите строго, только учусь... Дайте дельные советы: как можно упросить код? где сделал ошибки? Спасибо.
/*
* Программа должна запрашивать несколько слов, выдавая на экран их характеристику.
* Например, «животное, муж. рода, ед. числа., имен. падеж)».
* После ввода всех слов, на экран выдается стихотворение, в котором часть слов заменены введенными с клавиатуры словами.
*/
var name = prompt("Укажите имя существа!");
name = name.toLowerCase();
var pol = prompt("Какой у него род?");
pol = pol.toLowerCase();
var stringLine = "У меня живёт то ли спит то ли я на достоинство стал и в обморок ";
var mass = stringLine.split(' ');
function addName(){
if (name != false){
massName = name.split();}
else throw alert("Вы не ввели имя существа!") ;
if (mass != undefined && mass instanceof Array)
{ return mass.splice(3,0,massName);}
else throw alert("Не создан массив!");}
function addPol(){
if (pol && typeof(pol) == "string"){
if (pol == "мужской"){
mass.splice(9,0,"здох");
mass.splice(13,0,"ему");
mass.splice(15,0,"он");
mass.splice(20,0,"упал");
}
else if (pol == "женский"){
mass.splice(9,0,"здохла");
mass.splice(13,0,"ей");
mass.splice(15,0,"она");
mass.splice(20,0,"упала");
}
else throw alert("Вы не правельно ввели род!"); }
else {throw alert("Вы не ввели Род!");}
return mass; }
addName();
addPol();
mass.splice(4,0,",");
mass.splice(11,0,",");
mass.splice(17,0,"-");
mass.splice(27,0,".");
alert(mass.join(' '));
|
|
07.06.2012, 14:29
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Вы не прав ельно ввели род
Вы не правильно ввели род
Собственно вот эта конструкция занудна
mass.splice(20,0,"упал");
наверно нужно создать три массива(а не один), разбив их по тестовым проверкам,
Тогда можно искать текущее слово по индексу в массиве, не задавая жестко позиции проверяемых элементов массива
Удаление элемента массива по его названию
|
|
07.06.2012, 14:37
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
Сообщение от Deff
|
Вы не правельно ввели род
Вы не правильно ввели род
Собственно вот эта конструкция занудна
mass.splice(20,0,"упал");
наверно нужно создать три массива(а не один), разбив их по тестовым проверкам,
Тогда можно искать текущее слово по индексу в массиве, не задавая жестко позиции проверяемых элементов массива
Удаление элемента массива по его названию
|
А тогда конструкцию - "mass.splice(20,0,"упал"); " , как можно обойти?
|
|
07.06.2012, 14:43
|
|
Кандидат Javascript-наук
|
|
Регистрация: 09.02.2011
Сообщений: 145
|
|
Сообщение от Vitaliy_m
|
mass.splice(9,0,"здох");
mass.splice(9,0,"здохла");
|
Я один не понимаю - как, не зная русского языка, можно писать код?))
|
|
07.06.2012, 14:45
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
Сообщение от Bandicoot
|
Я один не понимаю, как, не зная русского языка, можно писать код?))
|
Я не хотел парить себе голову стихотворением, решил написать такую фразу.. Суть то не в ней а в задаче=)
|
|
07.06.2012, 14:54
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
1.Плохо понятен алгоритм
2. Нет проверочного массива с тестовыми словами
"здox"
"eмy"
"oн"
"yпaл"
и спец символами , . - ?
3.Откуда беруться эти цифры ?
mass.splice(11,0,",");
|
|
07.06.2012, 15:00
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
mass.splice(11,0,","); цифры это позиции слов куда они будут внедренны в массив.
|
|
07.06.2012, 15:02
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
По логике того как я писал скрипт, я делал всё таким образом -
1) создал массив с стихотворением
2) проверка введённых данных
3) внедрение слов в массив
|
|
07.06.2012, 15:07
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от Vitaliy_m
|
mass.splice(11,0,","); цифры это позиции слов куда они будут внедренны в массив.
|
Там есть mass.splice(20,0,"упал"); - в текущем массиве элементов всего 16, последний -пустой
|
|
07.06.2012, 15:12
|
|
Интересующийся
|
|
Регистрация: 07.06.2012
Сообщений: 12
|
|
Да но по мере добавление элементов их будет 20, так как слово "упал" последнее то есть четвёртое..Сейчас сделаю с массивами пример скину код..он более оригинальней чем этот...
|
|
|
|