Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.10.2013, 09:24
Аспирант
Отправить личное сообщение для Anna77 Посмотреть профиль Найти все сообщения от Anna77
 
Регистрация: 25.09.2013
Сообщений: 44

массив объектов
Здравствуйте! Подскажите, какие ошибки в коде? Для вывода данных надо применить созданный самостоятельно метод объекта

Последний раз редактировалось Anna77, 13.10.2013 в 16:36.
Ответить с цитированием
  #2 (permalink)  
Старый 12.10.2013, 11:00
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Начните с того, что составьте алгоритм.
Вот, что по-Вашему должен делать код:
do{
 var str1 = prompt("Введите имя", "Name");
} while (str1 !== "");

По-моему, он будет у посетителя бесконечно спрашивать имя, пока тот не сдастся и не введет пустую строку.
Проверки на ESC вообще нет в коде.
Избавьтесь от document.write (замените на innerHTML, например).
И, пожалуйста, обрамляйте код тегом JS run
Ответить с цитированием
  #3 (permalink)  
Старый 12.10.2013, 21:09
Аспирант
Отправить личное сообщение для Anna77 Посмотреть профиль Найти все сообщения от Anna77
 
Регистрация: 25.09.2013
Сообщений: 44

Спасибо большое за ответ!
Я добавила проверку на ESC, но все равно код не работает
do
{
var str1 = prompt("Введите имя", "Name");
}
while (str1 !== "" || str1 !== null);
Ответить с цитированием
  #4 (permalink)  
Старый 12.10.2013, 22:58
SP7 SP7 вне форума
Интересующийся
Отправить личное сообщение для SP7 Посмотреть профиль Найти все сообщения от SP7
 
Регистрация: 24.06.2013
Сообщений: 10

Информация Вам для размышления.

Первое: Зачем здесь проверка на неравенство с учетом типа?
Второе: Зачем такое сложное условие в while, во-первых оно не правильно, во вторых его можно упростить.


А теперь правильный ответ В Вашем случае нужно было написать так:

do
        {
            var str1 = prompt("Введите имя", "Name");
        }
        while (!str1);


Почему так:

Первое: код становится более читабельным, поскольку условие в while более наглядно
Второе: потому что так все работает как надо! )

Последний раз редактировалось SP7, 12.10.2013 в 23:02.
Ответить с цитированием
  #5 (permalink)  
Старый 12.10.2013, 23:55
SP7 SP7 вне форума
Интересующийся
Отправить личное сообщение для SP7 Посмотреть профиль Найти все сообщения от SP7
 
Регистрация: 24.06.2013
Сообщений: 10

Оформите код в посте по настоящему, через вставку JavaScript, а то глаза сломаешь такое читать. И в двух словах какая задача перед Вами стоит.

Последний раз редактировалось SP7, 12.10.2013 в 23:58.
Ответить с цитированием
  #6 (permalink)  
Старый 13.10.2013, 00:33
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 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.
Ответить с цитированием
  #7 (permalink)  
Старый 13.10.2013, 00:34
Аспирант
Отправить личное сообщение для Anna77 Посмотреть профиль Найти все сообщения от Anna77
 
Регистрация: 25.09.2013
Сообщений: 44

Сообщение от SP7 Посмотреть сообщение
И в двух словах какая задача перед Вами стоит.
Нужен конструктор объектов, ввод данных с клавиатуры. Остановка ввода, если имя не введено или нажата клавиша ESC. Сохранить данные в массиве объектов.Вывести данные в окно браузера в виде таблицы. Для вывода применить созданный метод объекта

Последний раз редактировалось Anna77, 13.10.2013 в 01:09.
Ответить с цитированием
  #8 (permalink)  
Старый 13.10.2013, 14:26
Аспирант
Отправить личное сообщение для Anna77 Посмотреть профиль Найти все сообщения от Anna77
 
Регистрация: 25.09.2013
Сообщений: 44

BETEPAH, спасибо большое за ответ! Не подскажете ли вариант вывода таблицы при помощи созданного метода объекта (через prototype)?

Последний раз редактировалось Anna77, 13.10.2013 в 16:38.
Ответить с цитированием
  #9 (permalink)  
Старый 13.10.2013, 14:35
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Anna77,
Если не секрет, ответьте, мы тут всем форумом поступаем куда-то? Или уже поступили и готовим курсовые?
Написать Вам готовый метод? Или сами догадаетесь, что он будет содержать то, что находится в 18й строке (с некоторыми изменениями, конечно)?
Ответить с цитированием
  #10 (permalink)  
Старый 13.10.2013, 14:51
Аватар для BETEPAH
Профессор
Отправить личное сообщение для BETEPAH Посмотреть профиль Найти все сообщения от BETEPAH
 
Регистрация: 23.06.2011
Сообщений: 1,165

Так и я спросил, мне же интересно, чему (какому заведению) соответствует этот уровень задач. Попробуйте для начала, подумайте. Если не справитесь к вечеру, свистните я напишу Вам метод
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
массив объектов bohdan Общие вопросы Javascript 2 29.02.2012 23:40
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10
Как создать многомерный массив FRIE Общие вопросы Javascript 29 02.06.2010 19:14
Подскажите, как вернуть js-скрипт массив Polkan AJAX и COMET 18 30.04.2010 23:30
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28