Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: среднее геометрическое массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
danilmoro3
Отправлено: 17 Ноября, 2014 - 16:04:12
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




реализуйте функцию cleanArray, которая получает на вход массив и возвращает "очищенную версию", оставляя в нем только числа.
реализуйте функцию average, которая считает среднее геометрическое массива, поданного на вход

http://jsfiddle[dot]net/Alex_S/wer5u7z5/
 
 Top
IllusionMH
Отправлено: 17 Ноября, 2014 - 16:08:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Как говорят на стэковерфлоу: используйте джейкуэри, оно решает все проблемы.
 
 Top
danilmoro3
Отправлено: 17 Ноября, 2014 - 16:12:23
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




мне нужно на js
 
 Top
IllusionMH
Отправлено: 17 Ноября, 2014 - 16:13:48
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




danilmoro3, а jQuery - не JS а другой язык?
Показывайте свою реализацию или попытки, а мы подскажем по конкретным вопросам. Ну или ждать челоека которому делать нечего и сделает все вместо вас.

(Отредактировано автором: 17 Ноября, 2014 - 16:14:50)

 
 Top
danilmoro3
Отправлено: 17 Ноября, 2014 - 16:17:40
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




пожалуй, подожду
 
 Top
IllusionMH
Отправлено: 17 Ноября, 2014 - 16:22:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




danilmoro3, ну удачи. А пока рекомендую уже начинать читать про typeof, цикл for (или forEach и reduce)
 
 Top
esterio
Отправлено: 17 Ноября, 2014 - 16:24:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function isNumber(n) {
  2.   return !isNaN(parseFloat(n)) && isFinite(n);
  3. }
  4.  
  5. function cleanArray (arr) {
  6.     var r = [];
  7.     for(var i = 0; i < arr.length; i++){
  8.         if(isNumber(arr[i])){
  9.             r.push(arr[i]);
  10.         }
  11.     }
  12.    
  13.     return r;
  14. }
 
 Top
Zuldek
Отправлено: 17 Ноября, 2014 - 16:25:51
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function cleanArray (arr) {
  2. for (index = 0; index < arr.length; ++index) {
  3.     if( ! (!isNaN(arr[index]) && (function(x) { return (x | 0) === x; })(parseInt(arr[index])) ) ) delete arr[index];
  4. }
  5.     return arr;
  6. }
  7.  
 
 Top
and_07
Отправлено: 17 Ноября, 2014 - 16:32:20
Post Id


Гость


Покинул форум
Сообщений всего: 91
Дата рег-ции: Сент. 2012  


Помог: 3 раз(а)




так для кучи ))

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. /**
  3.  * not use
  4.  */
  5. function isInteger(num) {
  6.   return (num ^ 0) === num;
  7. }
  8.  
  9. /*
  10.  *USE
  11.  *clean(arr,null);
  12.  *clean(arr,"");
  13.  *clean(arr,undefined);
  14.  */
  15. var clean = function(arr,deleteValue){
  16.     for (var i = 0; i < arr.length; i++)
  17.     {
  18.         if (arr[i] == deleteValue)
  19.         {        
  20.             arr.splice(i, 1);
  21.             i--;
  22.         }
  23.     }
  24.     return arr;
  25. };
  26.  
 
 Top
biperch
Отправлено: 17 Ноября, 2014 - 16:42:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




Проверил пашет)

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function cleanArray(input){
  3.     var out = [];
  4.     for(var i=0; i<input.length;i++){
  5.         if(!isNaN(input[i])){
  6.             out.push(input[i]);
  7.         }
  8.     }
  9.     return out;
  10. }
  11.  
 
 Top
Bio man
Отправлено: 17 Ноября, 2014 - 17:02:01
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




biperch, !isNaN не корректно использовать, на числовые строки возвращает true.
Хотя, зависит от задачи
 
 Top
biperch
Отправлено: 17 Ноября, 2014 - 17:08:56
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 588
Дата рег-ции: Окт. 2009  
Откуда: Днепропетровск


Помог: 8 раз(а)




Bio man пишет:
biperch, !isNaN не корректно использовать, на числовые строки возвращает true.
Хотя, зависит от задачи


isNaN тем и занимается, что проверяет возможно ли переданную переменную преобразовать в число, точнее проверяет обратное сказанному)) просто так проще выразится)
(Добавление)
В заключение
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. function average(input){
  3.     var sum = 0;
  4.    
  5.     for(var i=0; i<input.length;i++){
  6.         sum *= input[i];
  7.     }
  8.     return Math.pow(sum, 1/input.length);
  9. }
  10.  
  11.  

(Отредактировано автором: 17 Ноября, 2014 - 17:24:07)

 
 Top
danilmoro3
Отправлено: 17 Ноября, 2014 - 17:36:29
Post Id


Новичок


Покинул форум
Сообщений всего: 13
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




спасибо, решение найдено


function printResultToDiv(value, target) {
document.querySelector('#' + target).textContent = value;
}

function printArrayToDiv(array, target) {
printResultToDiv('[' + array.join(', ') + ']', target);
}

function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}

function cleanArray (arr) {
var r = [];
for(var i = 0; i < arr.length; i++){
if(isNumber(arr[i])){
r.push(arr[i]);
}
}

return r;
}

function average (arr) {
var i;
var proizv = 1;
for( var i = 0; i < arr.length; i++ ){
proizv = proizv * arr[i];
}
var g = Math.pow(proizv, 1/5)
return g;
}

var sourceArray = [1, "37", 45, "котик", undefined, null, "44", "", "22.3"];
printArrayToDiv(sourceArray, 'source');

var cleanedArray = cleanArray(sourceArray);
printArrayToDiv(cleanedArray, 'result');

printResultToDiv(average(cleanedArray), 'avg');
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB