Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.04.2015, 12:20
Интересующийся
Отправить личное сообщение для Basil_JS Посмотреть профиль Найти все сообщения от Basil_JS
 
Регистрация: 04.09.2014
Сообщений: 12

Массив из элементов другого массива, взятых в случайном порядке
Здравствуйте, нужно создать массив, состояший из элементов другого массива, при этом
1)элементы не должны повторяться,
2)их количество должно быть равно количетству элементов в исх. массиве,
3)они д.б. расположены в случайном порядке
Отмечу, что мне нужны не сами элементы исходного массива в конечном массиве, а их порядковые номера, и чтобы именно они были случайны и не повторялись.
Как я делаю:

this.list = [];//Исходный массив, там у меня хранятся значения x1,x2,x3,x4
this.temp=[];//Конечный массив

for (var i = 1; i <= this.list.length; i++)
{
var rand = Math.floor(Math.random()*this.list.length);
var rrand = this.list.indexOf(this.list[rand]);
this.temp.push(rrand);
this.temp.sort();
}
//Проверка на повторения в конечном массиве
for (var i = this.temp.length; i > 0; i--)
{
if (this.temp[i] === this.temp[i-1])
{
this.temp.splice(i, 1);
}
}
В общем говоря, в конечном массиве у меня нет такого же количества элементов, что и в исходном.
Пожалуйста помогите решить эту проблему.
Ответить с цитированием
  #2 (permalink)  
Старый 12.04.2015, 12:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,973

Basil_JS,
пока ничего не понял -- наверно день такой ))) - или вам надо просто перемешать исходный массив
Ответить с цитированием
  #3 (permalink)  
Старый 12.04.2015, 12:41
Интересующийся
Отправить личное сообщение для Basil_JS Посмотреть профиль Найти все сообщения от Basil_JS
 
Регистрация: 04.09.2014
Сообщений: 12

мне нужно перемешать порядковые элементы исх массива, то есть было в массиве 40 элементов. на выходе нужно получить что-то вроде: [10, 28, 1, 7, ...].
Ответить с цитированием
  #4 (permalink)  
Старый 12.04.2015, 12:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,973

Basil_JS,
снова да ладом -- либо перемешать исходный либо исходный совсем ненужен и нужно создать массив такой-то длины
Ответить с цитированием
  #5 (permalink)  
Старый 12.04.2015, 12:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,973

Basil_JS,
Сделать все элементы массива уникальными
Ответить с цитированием
  #6 (permalink)  
Старый 12.04.2015, 13:00
Интересующийся
Отправить личное сообщение для Basil_JS Посмотреть профиль Найти все сообщения от Basil_JS
 
Регистрация: 04.09.2014
Сообщений: 12

у исходного массива берем лишь длину
Ответить с цитированием
  #7 (permalink)  
Старый 12.04.2015, 13:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 30,973

Basil_JS, или random(0,39,40)
<script language="JavaScript" type="text/javascript">
function random(min,max,l)
{var arr = [],m = [],n = 0;
  if (max - min < l-1) return;
  for (var i=0; i<=(max-min); i++)m[i] = i + min;
  for (var i=0; i<l; i++) {n = Math.floor(Math.random()*(m.length)); arr[i]=m.splice(n,1)[0];};
  return arr
}
document.write(JSON.stringify(random(1,40,40)))
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из одного массива удалить элементы другого... t3mir1an Events/DOM/Window 4 22.10.2013 10:14
Удалить и вернуть массив из удаленных элементов splice Paulyyy Общие вопросы Javascript 15 29.05.2013 14:36
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов rjabijj Общие вопросы Javascript 6 06.07.2012 20:34
Упорядочить заданный числовой массив X (M) в порядке убывания значений его элементов. Drimmer Серверные языки и технологии 0 02.07.2012 17:22
Определить количество отрицательных элементов массива Тип_1 Общие вопросы Javascript 3 25.06.2012 17:24