Показать сообщение отдельно
  #13 (permalink)  
Старый 19.12.2015, 15:50
Аватар для Stroy
Интересующийся
Отправить личное сообщение для Stroy Посмотреть профиль Найти все сообщения от Stroy
 
Регистрация: 29.10.2014
Сообщений: 25

Здравствуйте. При использовании данной функции,взятой из этой темы(спасибо рони), очень часто выскакивает значение "undefined". Не могу понять, где я накосячил переделывая написанное рони в функцию.
function addArray(letterOfArray, arrayOfCorrelation) {
    function usefloor(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    var m = [],
        s = [],
        t = [];
    var l = 9; //длина массива
    var min = 1;
    var max = 9;
    //создание массива m с неуникальными элементами
    for (var i = 0; i < l; i++) {
        m[i] = usefloor(min, max)
    }
    var test = m;
    //создание массива t из оставшихся элементов на случай замены
    for (var i = 0; i <= (max - min); i++) {
        s[i] = 1;
    }
    for (var i = 0; i < l; i++) {
        s[m[i]] = 0;
    }
    for (var i = 0; i < s.length; i++) {
        if (s[i] == 1) t.push(i)
    }
    test = t;
    //проверка m на уникальность и замена повторяющихся элементов
    for (var i = 0; i < l; i++) {
        for (var k = i + 1; k < l; k++) {
            if (m[k] == m[i] || m[k]=="undefined") {
                n = usefloor(1, (t.length - 1));
                m[k] = t[n];
                t.splice(n, 1);
            }
        }
    }
    for (var i = 0; i < l; i++) {
        var count = i + 1;
        document.getElementById(letterOfArray + count).value = m[i];
    }
    var arrayOfCorrelation =this.arrayOfCorrelation= m;
    return arrayOfCorrelation;
}
var arrayA;
addArray("a", arrayA);
addArray("b", arrayA);
addArray("c", arrayA);
addArray("d", arrayA);
addArray("e", arrayA);
addArray("f", arrayA);
addArray("g", arrayA);
addArray("h", arrayA);
addArray("i", arrayA);
document.write(arrayA);
Ответить с цитированием