Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с массивом (https://javascript.ru/forum/misc/35735-rabota-s-massivom.html)

Alexej 20.02.2013 15:30

Работа с массивом
 
Приветствую!
Подскажите пожалуйста как сделать, чтобы возвращалась сумма квадратов элементов массива???
var arr = [1,2,null,3,,4,5];
for(var keys = 0;keys<arr.length;keys++){
    if(!arr[keys]) continue;
    var xx = arr[keys];
    function s(x){
        var sum = 0;
        return sum += x*x;
        }; 
    alert('Summa = ' + s(xx));
  };

tsigel 20.02.2013 15:39

var arr = [1,2,null,3,,4,5];
var summ = 0;
function s(x){
  var sum = 0;
  summ += x * x;  
  return sum += x*x;
}; 
for(var keys = 0;keys<arr.length;keys++){
    if(!arr[keys]) continue;
    var xx = arr[keys];    
    alert('Summa = ' + s(xx));
  };
alert('Summa elementov massiva = ' + summ);

rgl 20.02.2013 15:46

По правилам языка определять функцию можно только на самом верхнем уровне, нельзя внутри блоков, условных операторов, циклов. Хотя на практике это обычно работает. (Внутри других функций функции определять можно, но тоже только на самом верхнем уровне)

Alexej 20.02.2013 15:50

Спасибо за помощь!!! Я разобрался теперь:victory:

tsigel 20.02.2013 15:52

rgl,
Да я просто скопипастил)

Исправил.

Alexej 20.02.2013 15:59

думаю так вернее
var arr = [1,2,null,3,,4,5];
function s(x){
        return sum += x*x;
        }; 
var sum = 0;
for(var keys = 0;keys<arr.length;keys++){
    if(!arr[keys]) continue;
    var xx = arr[keys];
    s(xx);       
    };
  alert('Summa = ' + sum);

tsigel 20.02.2013 16:02

:yes:

ksa 20.02.2013 16:03

Цитата:

Сообщение от Alexej (Сообщение 235860)
думаю так вернее

А так симпотнее... :D

var arr = [1,2,null,3,,4,5];
var sum = 0;
for(var keys = 0;keys<arr.length;keys++){
    if(!arr[keys]) continue;
    var xx = arr[keys];
    s(xx);       
};
alert('Summa = ' + sum);
function s(x){
    return sum += x*x;
};

tsigel 20.02.2013 16:05

var arr = [1,2,null,3,,4,5];
var sum = 0;
for ( var keys in arr ){
    if(!arr[keys]) continue;
    var xx = arr[keys];
    s(xx);       
    };
  alert('Summa = ' + sum);
function s(x){
   return sum += x*x;
};

Deff 20.02.2013 16:14

var arr = [1,2,null,3,,4,5];
var Summ = eval(arr.join(',').replace(/(?:^|,)(\d*)/ig,'+$1*$1').replace(/\*\+/g,''))
alert(Summ)


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