자바스크립트 배열 랜덤 구성하기 - 생각의 흐름
💡생각의 흐름
2018-05-03
function shuffle(arr) {
var k = [];
for (var i = 0, iLength = arr.length; i < iLength; i++) {
var randomNo = Math.floor(Math.random() * iLength);
k[i] = arr[randomNo];
arr.splice(randomNo, 1);
if (k[i] === undefined) {
i = i - 1;
}
}
return k;
}
생각의 흐름대로 작성하고보니 갯수가 적을 때 쓸법하다.
남들은 어떻게 하나 찾아본다.
var number = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '', ''];
var randomArray = function(arr) {
arr = arr.sort(function() {
return .5 - Math.random();
});
};
randomArray(number);
으음..
2018-10-05
function shuffleArray(arr) {
for(var i = arr.length - 1; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
return arr;
}
slice로 배열을 제거하지 않고 셔플
2018-11-22
var randomArr = function(arr) {
for (var i = 0, iLength = arr.length; i < iLength; i++) {
var randomNo = Math.floor(Math.random() * iLength);
var tempArr = arr[randomNo];
arr[randomNo] = arr[i];
arr[i] = tempArr;
}
return arr;
};
C++에서 Swap 예제를 너무 많이 봤더니.. 또 생각의 흐름대로 작성했다가 마크다운 남겨놨던게 생각나서 일단 작성본 추가 안바쁠때 다시보자
2019-08-28
function shuffleArr(arr) {
for (let ai = arr.length - 1; ai > 0; ai--) {
let aj = Math.floor(Math.random() * ai);
[arr[ai], arr[aj]] = [arr[aj], arr[ai]];
}
return arr;
}
오랜만에 필요했는데 하고보니 작년 10/5 하고 매우 흡사…