Работа с массивом
Приветствую!
Подскажите пожалуйста как сделать, чтобы возвращалась сумма квадратов элементов массива??? 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)); }; |
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); |
По правилам языка определять функцию можно только на самом верхнем уровне, нельзя внутри блоков, условных операторов, циклов. Хотя на практике это обычно работает. (Внутри других функций функции определять можно, но тоже только на самом верхнем уровне)
|
Спасибо за помощь!!! Я разобрался теперь:victory:
|
rgl,
Да я просто скопипастил) Исправил. |
думаю так вернее
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); |
:yes:
|
Цитата:
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; }; |
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; }; |
var arr = [1,2,null,3,,4,5]; var Summ = eval(arr.join(',').replace(/(?:^|,)(\d*)/ig,'+$1*$1').replace(/\*\+/g,'')) alert(Summ) |
Часовой пояс GMT +3, время: 05:45. |