Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с массивом. Где ошибка ? (https://javascript.ru/forum/misc/54178-rabota-s-massivom-gde-oshibka.html)

Cepreu 07.03.2015 08:50

Работа с массивом. Где ошибка ?
 
Доброго времени суток ! Не могу сам найти ошибку. В результате работы скрипта должна выводиться сумма чисел хранящихся в массиве. Например ввожу в массив по порядку три числа 5 , 6 , 7. Надеюсь получить на выходе 18 , а получаю 0567 :-/ . Кто что подскажет ?

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Работа  с  массивом</title>
    <script src="arrays.js">
    </script>  
  </head>
  <body onload="rezultat()">
  </body>
</html>



Содержание файла arrays.js

function  rezultat() {   
 
   function  enter() {
   
     function isNumber( n ) {
       return  !isNaN(parseFloat( n )) && isFinite( n );
     }	
 
	 alert("Это  приложение  формирует  числовой  массив  введенный               
                    пользователем  и  выдает  сумму  его  элементов");
     
	 mas = [];
	 
	 do {   

         var  q = prompt("Введите  очередной  элемент  массива","");

	 if  ( isNumber( q ) ) {
             mas.push( q ); 
	 }
	   else {
         if  ( q == null ) {
           alert("Отмена  ввода");	   
		 }
         else { 		 
           if  ( q == "" ) {
             alert("Вы  ничего  не  ввели! Попытайтесь  ещё  раз.");
           } 
           else {
             alert("Вы  ввели  не  числовое  значение. Ввод  элементов  
                            массива  завершается.");
  	       }
         }		   
	   }	   
	 }  while  (  ( !isNumber( q ) && ( q == "" ) ) || ( isNumber( q ) && ( q != "" ) )  );	

     return  mas;	 

   }

   var  a, s = 0;
   
   arr = [];
   
   arr = enter();    
  
   for ( a = 0; a < ( arr.length ); a++ ) {
     s = ( s + arr[ a ] ); 

   }
   
   alert( " Сумма  элементов  введенного  массива  равна  " + s );
   
 }

danik.js 07.03.2015 08:56

prompt возвращает строку, а не число. Сравни:

alert( 1 + 2 + 3);
alert( "1" + "2" + "3");

Cepreu 07.03.2015 17:19

Точно , спасибо. Буду внимательней.


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