Выбор трех элементов из массива
Есть массив a = [,,,3,,,6,,8,9,10,11,12,13,14,15,16,17,18,]
Над рандомно выбрать из него один два или три элемента и записать в новый массив также состоящий из 20 элементов но все остальные оставить пустыми то есть должно получиться что-то типа b = [,,,3,,,6,,,9,,,,,,,,,,] или другой массив например b1 = [,,,3,,,,,,,,,,,,,,,,] Народ помогите |
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; } |
спасибо
|
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')) |
Часовой пояс GMT +3, время: 14:22. |