Показать сообщение отдельно
  #10 (permalink)  
Старый 29.05.2010, 15:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

вариант отлова на скорую руку
<script language="JavaScript" type="text/javascript">
function usefloor(min, max) {
    return Math.floor(Math.random() * (max - min + 1) + min);
}
var m = [],
    s = [],
    t = [];
var l = 10; //длина массива
var min = 0;
var max = 20;
//создание массива m с неуникальными элементами
for (var i = 0; i < l; i++) {
    m[i] = usefloor(min, max)
}
var test="<br>" + 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+="<br>" + t;
//проверка m на уникальность и замена повторяющихся элементов
for (var i = 0; i < l; i++) {
    for (var k = i + 1; k < l; k++) {
        if (m[k] == m[i]) {
            n = usefloor(0, (t.length - 1));
            m[k] = "<font color='#FF0000'>" + t[n] + "</font>";
            t.splice(n, 1);
        }
    }
}
document.write(test+"<br>" + m);
</script>

Последний раз редактировалось рони, 16.06.2010 в 05:59.
Ответить с цитированием