Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Не выводится массив (https://javascript.ru/forum/css-html/47299-ne-vyvoditsya-massiv.html)

usa-1600 17.05.2014 23:48

Не выводится массив
 
Следую согласно коду из книги и не выводится чего-то массив на экран, почему пустота на экране?

Код:

<html>
        <head>
                <meta charset="utf-8">
                <title>Пример страницы</title>
        </head>
<body>
<h2><u>Инвентарный перечень товаров в магазине одежды</u></h2>
<script type="text/javascript" language="JavaScript">
<!--
//Заполнение массива данными о количестве товара
function populateArray(products)
{
products["рубашки"]=46;
products["брюки"]=23;
products["шляпы"] =14;
products["носки"]=153;
}
//Вывод на экран данных о запасов товаров
function displayArray(products)
document.write(products['рубашки']
document.write(products['брюки'],"
document.write(products['шляпы'],"
document.write(products['носки'], "
" рубашек.<br>")
брюк.<Ьг>");
шляп.<Ы>") ;
пары носков.");
//Создание массива, описывающего запасы товаров
var productQty = new Array() ;
//Определение запасов товара
populateArray(productQty);
//Отображения количества
//товаров
displayArray(productQty);
</script>
</body>
</html>


рони 18.05.2014 00:04

Цитата:

Сообщение от usa-1600
function displayArray

набор букв у вас
<html>
	<head>
		<meta charset="utf-8">
		<title>Пример страницы</title>
	</head>
<body>
<h2><u>Инвентарный перечень товаров в магазине одежды</u></h2>
<script>
<!--
//Заполнение массива данными о количестве товара
function populateArray(products)
{
products["рубашки"]=46;
products["брюки"]=23;
products["шляпы"] =14;
products["носки"]=153;
}
//Вывод на экран данных о запасов товаров
function displayArray(products){
   var html = '';
   for(var k in products) html+=k + "  " + products[k] + "<br />"
   return html
}

//Создание массива, описывающего запасы товаров
var productQty = new Array() ;
//Определение запасов товара
populateArray(productQty);
//Отображения количества
//товаров
document.write(displayArray(productQty));
</script>
</body>
</html>

usa-1600 23.05.2014 02:23

Понял, вы использовали ассоциативный массив фор с перебором элементов, а простым массивом фор как перебрать?

Вариант с ассоциативным массивом срабатывает, вот например.

<html>
	<head>
		<meta charset="utf-8">
		<title>Пример страницы</title>
	</head>
<body>
<h2><u>Инвентарный перечень товаров в магазине одежды</u></h2>
<script>
<!--
//Заполнение массива данными о количестве товара
function input(p){
	p['Фирма']="Ласунка";
	p['Цвет'] = "Белый";
	p['Форма'] = "Круглая";
	p['Материал'] = "Железо";
	p['Цена'] = 155;
}
function value(mas){
var rez='';
	for(var d in mas) rez+=d+' ' + mas[d]+'<br>';
	return rez;
};

var masiv = new Array();
input(masiv);
document.write(value(masiv));

</script>
</body>
</html>


А вот с простым фором не хочет работать :-( Как с простым фором сделать?

<html>
	<head>
		<meta charset="utf-8">
		<title>Пример страницы</title>
	</head>
<body>
<h2><u>Инвентарный перечень товаров в магазине одежды</u></h2>
<script>
<!--
//Заполнение массива данными о количестве товара
function input(p){
	p['Фирма']="Ласунка";
	p['Цвет'] = "Белый";
	p['Форма'] = "Круглая";
	p['Материал'] = "Железо";
	p['Цена'] = 155;
}
function value(mas){
for(i=0; i<mas.length; i++) document.write(mas[i]);
};

var masiv = new Array();
input(masiv);
document.write(value(masiv));

</script>
</body>
</html>

рони 23.05.2014 02:36

Цитата:

Сообщение от usa-1600
mas.length

а есть ли длина у вашего массива?
Цитата:

Сообщение от usa-1600
document.write(value(masiv));

распечатать распечатку

вам сюда http://learn.javascript.ru/
и лучше никогда неиспользовать document.write

usa-1600 24.05.2014 21:31

а есть ли длина у вашего массива?

length - это свойство, которое должно определять длину.

рони 24.05.2014 21:39

usa-1600,
length в вашем случае всегда 0

Erolast 24.05.2014 21:45

Цитата:

length - это свойство, которое должно определять длину.
Нет, length равно максимальному числовому индексу массива + 1.
Если этот твой треш написано действительно по учебнику, оставь его и больше никогда не открывай. Вот подробный и актуальный учебник - http://learn.javascript.ru/.


Часовой пояс GMT +3, время: 23:55.