Показать сообщение отдельно
  #10 (permalink)  
Старый 25.07.2011, 20:21
Аватар для SlavaPav
Аспирант
Отправить личное сообщение для SlavaPav Посмотреть профиль Найти все сообщения от SlavaPav
 
Регистрация: 25.02.2010
Сообщений: 57

Мне ваша программа кажется до жути не логичной. Проще не изменять ее, а переписать заново. Знаю что вам нужен именно ваш код, но вдруг пригодится, хотя он и не может добавлять случайный числа в уже существующий массив:
(function() {
    this.arrayFilledWithRandomNumbers = function(amount_of_numbers) {
        var base = amount_of_numbers,
            random_number,
            array = [];
        
        while (amount_of_numbers) {
            random_number = randomNumber(base);
            if (!hasNumber(array, random_number)) {
                array.push(random_number);
                amount_of_numbers -= 1;
            }
        }
        return array;
    };
    
    function hasNumber(array, number) {
        var has_element = false;
        array.forEach(function(element) {
            if (element == number) {
                has_element = true;
            }
        });
        return has_element;
    }
    
    function randomNumber(base) {
        return Math.floor(Math.random() * base);
    }
}());

console.log(arrayFilledWithRandomNumbers(3));
console.log(arrayFilledWithRandomNumbers(54));
console.log(arrayFilledWithRandomNumbers(12));

Последний раз редактировалось SlavaPav, 25.07.2011 в 20:41.
Ответить с цитированием