Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.02.2013, 15:30
Интересующийся
Отправить личное сообщение для Alexej Посмотреть профиль Найти все сообщения от Alexej
 
Регистрация: 20.02.2013
Сообщений: 18

Работа с массивом
Приветствую!
Подскажите пожалуйста как сделать, чтобы возвращалась сумма квадратов элементов массива???
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));
  };
Ответить с цитированием
  #2 (permalink)  
Старый 20.02.2013, 15:39
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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);

Последний раз редактировалось tsigel, 20.02.2013 в 15:52.
Ответить с цитированием
  #3 (permalink)  
Старый 20.02.2013, 15:46
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

По правилам языка определять функцию можно только на самом верхнем уровне, нельзя внутри блоков, условных операторов, циклов. Хотя на практике это обычно работает. (Внутри других функций функции определять можно, но тоже только на самом верхнем уровне)
Ответить с цитированием
  #4 (permalink)  
Старый 20.02.2013, 15:50
Интересующийся
Отправить личное сообщение для Alexej Посмотреть профиль Найти все сообщения от Alexej
 
Регистрация: 20.02.2013
Сообщений: 18

Спасибо за помощь!!! Я разобрался теперь
Ответить с цитированием
  #5 (permalink)  
Старый 20.02.2013, 15:52
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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

Исправил.
Ответить с цитированием
  #6 (permalink)  
Старый 20.02.2013, 15:59
Интересующийся
Отправить личное сообщение для Alexej Посмотреть профиль Найти все сообщения от Alexej
 
Регистрация: 20.02.2013
Сообщений: 18

думаю так вернее
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);
Ответить с цитированием
  #7 (permalink)  
Старый 20.02.2013, 16:02
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Ответить с цитированием
  #8 (permalink)  
Старый 20.02.2013, 16:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Alexej Посмотреть сообщение
думаю так вернее
А так симпотнее...

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;
};

Последний раз редактировалось ksa, 20.02.2013 в 16:05.
Ответить с цитированием
  #9 (permalink)  
Старый 20.02.2013, 16:05
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

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;
};
Ответить с цитированием
  #10 (permalink)  
Старый 20.02.2013, 16:14
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

var arr = [1,2,null,3,,4,5];
var Summ = eval(arr.join(',').replace(/(?:^|,)(\d*)/ig,'+$1*$1').replace(/\*\+/g,''))
alert(Summ)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Javascript фронтенд разработчик(долгосрочная, удаленная работа) cpp Работа 11 16.09.2012 12:04
Связывание выпадающего списка с массивом изображений и текста Rainman71 Элементы интерфейса 0 08.06.2012 00:58
Работа с массивом strengerst Общие вопросы Javascript 37 04.02.2012 16:33
Программист JavaScript постоянная удалённая работа. moisha Работа 4 26.10.2011 19:52
Постоянная работа / Front-end / Москва kooper Работа 4 29.09.2011 22:06