Таблица от масив

A

Anonymous

Guest
Здравейте , бихте ли ми казали как да направя това :

В скрипта да се създаде масив от обекти тип „стока” с елементи:
име, цена. От клавиатурата чрез елемент „текст” на обект FORM
да се зададат наличните пари. Да се създаде нов масив от стоките,
които могат да се купят с наличните пари. Ако дължината (length)
на новия масив е 0, да се изведе съобщение: „С тези пари не можете
да купите нито една стока в нашия магазин.”.
Иначе се извежда таблица със стоките, които можете да купите от магазина.
В случай, че след преглеждане на масива от стоки останат пари,
то след списъка да се изведе съобщение:
„Остават Ви още”+…+”лева за харчене в нашия магазин”.


Аз го направих така , но нещо не работи . Незная къде греша.


Код:
<html>
<head>
<title></title>
<script language="JavaScript">

for(count=0;count<stoka.length;count++)
{
document.write("VSI4KI "+stoka[count]+" ELEMENTI");
}
</script>
</head>
<body>
<FORM>
vuvedete nalichnite si pari: <INPUT type="text"><br>
<INPUT type="submit" value="potvurjdenie">
</FORM>
<script language="JavaScript">
<!--
var new_stoki=new Array();

</body>
</html>
 
Гледам никой не ще да ти напише домашното. Ето ти го, но ако ще работиш това след училище по-добре се опитай да разбереш какво се случва в кода. Няколко коментара преди кода.
1. <form> елемент не ти е необходим тъй като няма да изпращаш нищо на сървъра, а всичко ще е client-side.
2. document.write() в съвременните браузъри не е вариант за съобщение.
3. Условието "Да показва колко пари остават" за опростяване на задачата съм го интерпретирал така "Да показва колко пари остават при покупка само на определената стока", но предполагам че за училище това ще мине. Иначе в истинския живот трябва да се изчисли при всяка комбинация от покупки на артикули колко остават, а в твоя случай комбинациите са !5 (1*2*3*4*5) или 120 варианта, което би усложнило ненужно кода.

Ето и моето решение достатъчно богато на коментари надявам се:
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<script language="JavaScript">
	
	// създаваме двумерен масив съдържащ имената на продуктите в първата дименсия и цената забележи като число, а не като стринг във втората дименсия
	var stoka=new Array(
		new Array("домати","краставици","чушки","лук","фасул"),
		new Array(2,		2,			3,		 1,		3)
	);
	
	function WhatWeCanBuy() {
		// вземаме стойността на инпут полето и я конвертираме в дробно число 
		var total=parseFloat(document.getElementById('total').value);
		
	 	if (!isNaN(total)) { // ако в полето има валидно число продължаваме
			// създаваме новия масив съдържащ само стоките които можем да си купим
			var canbuy_stoka=new Array();
			// създаваме стрингова променлива за съобшението какво може да си купим
			var message = "";
			var canbuy=0;
			for(var i=0; i<stoka[0].length;i++) {
				// изчисляваме може ли с дадената сума да се купи тази стока
				if (total>=stoka[1][i]) {
					// ако може
					canbuy_stoka.push(stoka[0][i]); // добавяме в масива стока, която може да се купи
					message=message+stoka[0][i];
					// добавяме името на стоката за съобщението
					if (total>stoka[1][i])
						message=message+" и след покупката ще ви останат "+(total-stoka[1][i])+" лв., ";
					else
						message=message+", ";
					
				}
			}
			
			if (canbuy_stoka.length==0) // изчисляваме първото условие дали има нещо в масива
				alert('С тези пари не можете да си купите нито една стока от нашия магазин!');
			else	// ако дължината на масива не е 0 показваме съобшение какво може да се купи
				alert("Можете да си купите: "+message);
		}
			
	}
	</script>
</head>
<body onload="document.getElementById('all').innerHTML='В магазина има  '+stoka[0].length+' стоки'">

Колко пари имате: <input id="total" type="text"/><br/>
<button type="submit" onclick="WhatWeCanBuy()">Изчисли</button>
<div id="all"></div>
</body>
</html>
 

Back
Горе