function array_rand ( input, num_req ) { // Pick one or more random entries out of an array
//
// + original by: _argos
var Indexes = [];
var Ticks = num_req || 1;
var Check = {
Duplicate : function ( input, value ) {
var Exist = false, Index = 0;
while ( Index < input.length ) {
if ( input [ Index ] === value ) {
Exist = true;
break;
}
Index++;
}
return Exist;
}
};
if ( input instanceof Array && Ticks <= input.length ) {
while ( true ) {
var Rand = Math.floor ( ( Math.random ( ) * input.length ) );
if ( Indexes.length === Ticks ) { break; }
if ( !Check.Duplicate ( Indexes, Rand ) ) { Indexes.push ( Rand ); }
}
} else {
Indexes = null;
}
return ( ( Ticks == 1 ) ? Indexes.join ( ) : Indexes );
}
ошибка в строке if ( !Check.Duplicate ( Indexes, Rand ) ) { Indexes.push ( Rand ); }
должно быть if ( !Check.Duplicate ( Indexes, Rand ) ) { Indexes.push ( input[Rand] ); }
Сегодня 21 год, эти вещи делаются проще...
А чтоб исходный массив не изменялся, добавьте вначале функции его клонирование
Roxa konskie
Anonse erotyczne poznań
Отправить комментарий
Приветствуются комментарии:Для остальных вопросов и обсуждений есть форум.