Вывести из массива случайные 3 элемента (английский алфавит) с разными регистрами
Есть такой код:
function shuffle(arr) {
var j, temp;
for (var i = arr.length - 1; i > 0; i--) {
j = Math.floor(Math.random() * (i + 1));
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
return arr;
}
var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
console.log(shuffle(alpText));
Этот код перемешивает алфавит.
Как делать так, чтобы вытащить из этого массива 3 случайных элементов с разными регистрами.
Должен получиться например такой ответ: dGk (вытащил случайные 3 элемента и делал для одного или более элементов большой регистр).
Ответы (2 шт):
Автор решения: Igor
→ Ссылка
function shuffle(arr) {
var j, temp;
for (var i = arr.length - 1; i > 0; i--) {
j = Math.floor(Math.random() * (i + 1));
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
return arr;
}
var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
shuffle(alpText);
function randomUpper(a) {
if (Math.random() < 0.5)
a = a.toUpperCase();
return a;
}
var result = randomUpper(alpText[0]) + randomUpper(alpText[1]) + randomUpper(alpText[2]);
console.log(result);
Автор решения: uberchel
→ Ссылка
function shuffle(arr) {
var j, temp;
for (var i = arr.length - 1; i > 0; i--) {
j = Math.floor(Math.random() * (i + 1));
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
return arr;
}
function random (arr, len = 3) {
if (arr) {
let result = '';
while (len != 0) {
result += (Math.random() >= 0.5) ? arr[len].toUpperCase() : arr[len];
len--;
}
return result;
}
}
var alpText = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
console.log(random(shuffle(alpText)));