ロダスをクリア:.shuffleSelf()
6127 ワード
_.shuffleSelf
_.shuffleSelf(array,[number])
arrayの値からnumberの値をランダムに抽出して返します
1-array-ブレンドするアレイを渡す
2-number(option)-ランダムに抽出された値の数
↑不在時、アレイ.length
return 整列
lodash shuffleSelf
lodash例
_.shuffleSelf([1,2,4,3,4],3);
// 호출할때마다 값이 바뀜!
// => [ 2, 4, 3 ]
// => [ 3, 4, 1 ]
// => . . .
_.shuffleSelf
function shuffleSelf(array, size) {
var index = -1,
length = array.length,
lastIndex = length - 1;
size = size === undefined ? length : size;
// size( 두번째인자 )가 없으면 array의 length가 size가 된다
// => array전체의 값들이 랜덤하게 섞여서 반환된다
while (++index < size) {
// baseRandom은 아래에 설명!!
var rand = baseRandom(index, lastIndex),
value = array[rand];
// baseRandom로 얻은 array의 랜덤한 index값을 value라는 변수에 할당하고
array[rand] = array[index];
// 랜덤한 index의 값을 array[index]에 저장한다.
array[index] = value;
//array[index]에 baseRandom로 얻은 array의 랜덤한 index값을 넣는다
}
array.length = size;
//length를 랜덤으로 뽑을 값의 수로 변경
// 그럴일은 없겠지만 만약에 size가 4인데 length가 3이라면 빈 배열값이 들어가 length를 4로 맞춰준다
return array;
}
_.baseRandom
ランダム値を返す
最大値をパラメータの上下に設定します.
最小値を0ではなく1にします.
小数を出さないように小数を足す.(?)
const nativeRandom = Math.random,
nativeFloor = Math.floor
function baseRandom(lower, upper) {
return lower + nativeFloor(nativeRandom() * (upper - lower + 1));
// 작은수 + 올림 ( 랜덤값 * ( 큰수 + 작은수 + 1 ) )
}
ランダム抽出の仕方は知っていますが、なぜ低くするのかまだ分かりませんが...🤢Reference
この問題について(ロダスをクリア:.shuffleSelf()), 我々は、より多くの情報をここで見つけました https://velog.io/@byeol4001/Lodash-정리하기-.shuffleSelfテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol