JavaScript에서는 concat() 메서드와 sort() 메서드를 조합하여 배열의 요소들을 동일한 배열 안에 복제할 수 있습니다. 핵심 아이디어는 원본 배열을 자기 자신과 연결(concat)하여 각 요소가 두 번씩 포함된 새로운 배열을 만드는 것입니다.
동작 원리
- arr.concat(arr) : 원본 배열과 자기 자신을 연결하여 모든 요소가 두 번씩 들어간 새로운 배열을 반환합니다.
- .sort() : 연결된 배열의 요소들을 정렬하여 보기 좋게 순서를 정리합니다.
예제 코드
다음은 배열 요소를 동일한 배열 내에서 복제하는 전체 코드입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8" >
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
body {
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
}
.result,.sample {
font-size: 18px;
font-weight: 500;
color: rebeccapurple;
}
.result {
color: red;
}
</style>
</head>
<body>
<h1>배열 내에서 요소 복제하기</h1>
<div class="sample">[1,2,3,4,'A']</div>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>위 버튼을 클릭하면 배열의 요소들이 복제됩니다.</h3>
<script>
let resEle = document.querySelector(".result");
let BtnEle = document.querySelector(".Btn");
let arr = [1, 2, 3, 4, "A"];
BtnEle.addEventListener("click", () => {
arr = arr.concat(arr).sort();
resEle.innerHTML = arr;
});
</script>
</body>
</html>
실행 결과
위 코드를 실행하면 다음과 같은 화면이 나타납니다.

'CLICK HERE' 버튼을 클릭하면 −

버튼을 클릭하면 concat()으로 배열이 자기 자신과 연결되고, sort()에 의해 정렬되어 [1, 1, 2, 2, 3, 3, 4, 4, A, A]처럼 모든 요소가 두 번씩 출력되는 것을 확인할 수 있습니다.