Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.05.2013, 03:06
Интересующийся
Отправить личное сообщение для sonntagausgang Посмотреть профиль Найти все сообщения от sonntagausgang
 
Регистрация: 24.05.2013
Сообщений: 25

Выбор трех элементов из массива
Есть массив a = [,,,3,,,6,,8,9,10,11,12,13,14,15,16,17,18,]
Над рандомно выбрать из него один два или три элемента и записать в новый массив также состоящий из 20 элементов но все остальные оставить пустыми
то есть должно получиться что-то типа

b = [,,,3,,,6,,,9,,,,,,,,,,]
или другой массив например b1 = [,,,3,,,,,,,,,,,,,,,,]
Народ помогите

Последний раз редактировалось sonntagausgang, 26.05.2013 в 03:17.
Ответить с цитированием
  #2 (permalink)  
Старый 26.05.2013, 16:23
Аспирант
Отправить личное сообщение для elnoro Посмотреть профиль Найти все сообщения от elnoro
 
Регистрация: 23.06.2011
Сообщений: 39

function getRandomInt(min, max)
{
  return Math.floor(Math.random() * (max - min + 1)) + min;
}
var elems = getRandomInt(1, 3),
    i = 0,
    nums = [];

while (i < elems) {
	nums[i] = getRandomInt(1, 20);
	for (var j = 0; j < nums.length; j++) {
		if (nums[i] === nums[j] && i !== j) { 
			nums[j] = getRandomInt(1, 20);
			j = 0;
		}
	}
	b[nums[i]]  = a[nums[i]];
	++i;
}
Ответить с цитированием
  #3 (permalink)  
Старый 26.05.2013, 17:20
Интересующийся
Отправить личное сообщение для sonntagausgang Посмотреть профиль Найти все сообщения от sonntagausgang
 
Регистрация: 24.05.2013
Сообщений: 25

спасибо
Ответить с цитированием
  #4 (permalink)  
Старый 26.05.2013, 17:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

sonntagausgang,
Вариант...
var a = [,,,3,,,6,,8,9,10,11,12,13,14,15,16,17,18,];
function get(arr, e) {
    for (var d = Array(arr.length), c = [], a = 0; a < arr.length; a++) if (a in arr) {
            var f = Math.floor(Math.random() * (c.length + 1));
            c.splice(f, 0, a)
        }
    for (a = 0; a < e; a++) d[c[a]] = arr[c[a]];
    return d
};
alert([a,get(a,3),get(a,3),get(a,3),get(a,2),get(a,2),get(a,1),get(a,1)].join('\n'))
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выбор из массива трех элементов sonntagausgang Общие вопросы Javascript 2 26.05.2013 02:59
Определить количество отрицательных элементов массива Тип_1 Общие вопросы Javascript 3 25.06.2012 18:24
поочередный вывод элементов массива seosovest Общие вопросы Javascript 7 09.04.2012 10:47
Выбор элементов и построение списка выбранных элементов. madgals Events/DOM/Window 6 14.04.2009 22:30
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01