Выбор трех элементов из массива
Есть массив 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, время: 21:55. |