[typescript] 튜플의 요소 셔플하기
아래는 주어진 튜플의 요소를 셔플하는 TypeScript 함수의 예시입니다.
function shuffleTuple<T extends any[]>(tuple: T): T {
for (let i = tuple.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[tuple[i], tuple[j]] = [tuple[j], tuple[i]];
}
return tuple;
}
const myTuple: [number, string, boolean] = [1, "hello", true];
const shuffledTuple = shuffleTuple(myTuple);
console.log(shuffledTuple); // 예상 출력: [true, "hello", 1]
이 예시에서 shuffleTuple
함수는 제네릭 타입 T의 튜플을 매개변수로 받아 해당 튜플을 셔플한 후 반환합니다. 함수 내부에서는 Fisher-Yates 알고리즘을 사용하여 요소들을 섞어줍니다. 또한, myTuple
과 같이 특정한 튜플을 생성하고, shuffleTuple
함수를 사용하여 이를 셔플한 결과를 출력하고 있습니다.
이를 통해 TypeScript에서 튜플의 요소를 셔플하는 방법에 대해 알아보았습니다.