12.10.2013, 09:24
|
Аспирант
|
|
Регистрация: 25.09.2013
Сообщений: 44
|
|
массив объектов
Здравствуйте! Подскажите, какие ошибки в коде? Для вывода данных надо применить созданный самостоятельно метод объекта
Последний раз редактировалось Anna77, 13.10.2013 в 16:36.
|
|
12.10.2013, 11:00
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Начните с того, что составьте алгоритм.
Вот, что по-Вашему должен делать код:
do{
var str1 = prompt("Введите имя", "Name");
} while (str1 !== "");
По-моему, он будет у посетителя бесконечно спрашивать имя, пока тот не сдастся и не введет пустую строку.
Проверки на ESC вообще нет в коде.
Избавьтесь от document.write (замените на innerHTML, например).
И, пожалуйста, обрамляйте код тегом JS run
|
|
12.10.2013, 21:09
|
Аспирант
|
|
Регистрация: 25.09.2013
Сообщений: 44
|
|
Спасибо большое за ответ!
Я добавила проверку на ESC, но все равно код не работает
do
{
var str1 = prompt("Введите имя", "Name");
}
while (str1 !== "" || str1 !== null);
|
|
12.10.2013, 22:58
|
Интересующийся
|
|
Регистрация: 24.06.2013
Сообщений: 10
|
|
Информация Вам для размышления.
Первое: Зачем здесь проверка на неравенство с учетом типа?
Второе: Зачем такое сложное условие в while, во-первых оно не правильно, во вторых его можно упростить.
А теперь правильный ответ В Вашем случае нужно было написать так:
do
{
var str1 = prompt("Введите имя", "Name");
}
while (!str1);
Почему так:
Первое: код становится более читабельным, поскольку условие в while более наглядно
Второе: потому что так все работает как надо! )
Последний раз редактировалось SP7, 12.10.2013 в 23:02.
|
|
12.10.2013, 23:55
|
Интересующийся
|
|
Регистрация: 24.06.2013
Сообщений: 10
|
|
Оформите код в посте по настоящему, через вставку JavaScript, а то глаза сломаешь такое читать. И в двух словах какая задача перед Вами стоит.
Последний раз редактировалось SP7, 12.10.2013 в 23:58.
|
|
13.10.2013, 00:33
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
<div id="outer"></div>
<script>
var arr = [], addThis = true;
function Person(name,surname,age) {
this.name = name;
this.surname = surname;
this.age = age;
};
while (addThis) {
var str1 = prompt('Введите имя', 'Name');
if (!str1) break;
var str2 = prompt('Введите фамилию', 'Surname');
var str3 = +prompt('Введите возраст', 0);
addThis = str1 && str2 && str3;
if (addThis) arr.push(new Person(str1,str2,str3));
};
var str = '<table><tr><td>Имя</td><td>Фамилия</td><td>Возраст</td></tr>';
for (var i = 0; i < arr.length; i++) str += '<tr><td>' + arr[i].name + '</td><td>' + arr[i].surname + '</td><td>' + arr[i].age + '</td></tr>';
str += '</table>';
document.getElementById('outer').innerHTML = str;
</script>
Последний раз редактировалось BETEPAH, 13.10.2013 в 00:40.
|
|
13.10.2013, 00:34
|
Аспирант
|
|
Регистрация: 25.09.2013
Сообщений: 44
|
|
Сообщение от SP7
|
И в двух словах какая задача перед Вами стоит.
|
Нужен конструктор объектов, ввод данных с клавиатуры. Остановка ввода, если имя не введено или нажата клавиша ESC. Сохранить данные в массиве объектов.Вывести данные в окно браузера в виде таблицы. Для вывода применить созданный метод объекта
Последний раз редактировалось Anna77, 13.10.2013 в 01:09.
|
|
13.10.2013, 14:26
|
Аспирант
|
|
Регистрация: 25.09.2013
Сообщений: 44
|
|
BETEPAH, спасибо большое за ответ! Не подскажете ли вариант вывода таблицы при помощи созданного метода объекта (через prototype)?
Последний раз редактировалось Anna77, 13.10.2013 в 16:38.
|
|
13.10.2013, 14:35
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Anna77,
Если не секрет, ответьте, мы тут всем форумом поступаем куда-то? Или уже поступили и готовим курсовые?
Написать Вам готовый метод? Или сами догадаетесь, что он будет содержать то, что находится в 18й строке (с некоторыми изменениями, конечно)?
|
|
13.10.2013, 14:51
|
|
Профессор
|
|
Регистрация: 23.06.2011
Сообщений: 1,165
|
|
Так и я спросил, мне же интересно, чему (какому заведению) соответствует этот уровень задач. Попробуйте для начала, подумайте. Если не справитесь к вечеру, свистните я напишу Вам метод
|
|
|
|