Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Решение задачи с объектом math (https://javascript.ru/forum/misc/20912-reshenie-zadachi-s-obektom-math.html)

biz87 22.08.2011 15:33

Решение задачи с объектом math
 
Здравствуйте. Решаю вот такую задачку.
Ваша задача написать функцию, которая принимает два параметра.
1. Массив, состоящий из чисел с дробями.
2. Метод округления "round", "ceil" или "floor".

На выходе функция должна выводить этот же массив, но при этом все элементы массива,
должны быть округлены с помощью указанного во втором параметре метода объекта Math.

Исходный массив:
var numberArray = [34.82, 12.90, 17.01, 78.51];

Написал решение, уверен что решение правильное, но где-то закралась ошибка, не могу понять где. Может вы чего подскажете.

function numb (myArray, method)
{
	for(var i = 0; i < myArray.length; i++)
	{
		if (method == round)
		{
			myArray[i] = math.round(myArray[i]);
			document.write(myArray[i] + "<br>");
		}
		else if(method == ceil)
		{
			myArray[i] = math.ceil(myArray[i]);
			document.write(myArray[i] + "<br>");
		}
		else if(method == floor)
		{
			myArray[i] = math.floor(myArray[i]);
			document.write(myArray[i] + "<br>");
		}
		else
		{
			document.write("Вы ввели неправильный метод");
		}
	}

}
var numberArray = [34.82, 12.90, 17.01, 78.51];
numb(numberArray, "ceil");

Kolyaj 22.08.2011 15:38

function numb(arr, method) {
    return arr.map(Math[method]);
}
alert(numb([34.82, 12.90, 17.01, 78.51], 'ceil'));


А где у вас ошибка, вы узнаете, когда откроете, наконец, для себя консоль ошибок. А то так и будете из-за каждой синтаксической ошибки на форум бегать.

biz87 22.08.2011 15:49

Что то я забыл совсем про консоль ошибок. Спасибо за напоминание. Только я не просил другое решение задачи. Мне более важно не решить ее любым способом, а понять где я ошибся.

biz87 22.08.2011 15:58

Ошибка найдена.
 
Используя консоль ошибок я выловил ошибку.
объект Math пишется с большой буквы, а я писал маленькими.

popov654 26.08.2011 13:50

Не только. У Вас ещё кавычки пропущены при сравнениии строк... Может, это и прокатывает (не пробовал), но это всяко дурной тон.


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