[JavaScript]배열

작성자
진행일시
이메일

1.자바스크립트에서 배열이란?

자료형 지정이 없기 때문에 모든 자료형을 보관하는 변수의 모음을 배열로처리
자바에서 ArrayList형태와 유사

2. 자바스크립트의 특징

ArrayList처럼 모든 타입의 값을 배열 형태로 담을 수 있다.
var arr5 = ['김진호', 20, true, [1,2,3,4]]; console.log(arr5); for(var i = 0; i < arr5.length; i++) { area1.innerHTML += 'arr5[' + i + '] : ' + arr5[i] + '<br>'; if(i == 3) { for(var j = 0; j < arr5.length; j++) { area1.innerHTML += 'arr5[' + i + '][' + j + '] : ' + arr5[i][j] + '<br>'; } } } }
JavaScript
복사
배열 선언시 크기를 지정하지않고 선언가능하다
크기를 저장하고 선언할수도 있다
배열에서는 최신값으로 동기화 처리를한다(예를들면 처음에 크기가없는 배열을 선언하고 그 후에 크기에 값을 넣고 출력하면 처음에 크기가없는 배열에도 값이 들어간걸 확인할수 있다 이부분은 중요하다 >> 동적생성)
그리고 크기가 지정되어있는 배열에 추가적으로 값을 대입해도 추가가 된다(동적생성)
function arrayTest2() { var area2 = document.getElementById('area2'); var arr1 = new Array(); var arr2 = new Array(3); console.log(arr1); console.log(arr2); //크기를 지정하지 않은 배열에 값 대입 arr1[0] = '바나나'; arr1[1] = '복숭아'; arr1[2] = '키위'; arr1[3] = '딸기'; console.log(arr1); //크기를 지정한 배열에 값 대입 arr2[0] = '자동차'; arr2[1] = '비행기'; arr2[2] = '도보'; //없는 인덱스에 값 대입(동적으로 생성해준다.) arr2[3] = '기차'; console.log(arr2); var arr3 = new Array('홍길동', '임꺽정', '신사임당'); console.log(arr3);
JavaScript
복사

ㅁ Array 객체의 메소드

Array도 하나의 객체이기 때문에 배열에서 활용할 수 있는 메소드가 있다.

ㅁ 배열에서 쓰이는 메소드는 무엇이있을까?

1.
indexOf() : 배열에서 요소가 위치하는 인덱스를 리턴
function test1(){ var arr = ['d','개발자', '무역유통', '중국어샘'] var str = prompt('당신의 선택은???') area1 = document.getElementById('area1'); area1.innerHTML = '당신이 선택한 직업은 ' + arr.indexOf(str) + '순위인 ' + str + '입니다.'; }
JavaScript
복사
2. concat(배열명) : 두 개 이상의 배열을 결합할 때 사용한다.
concat을 써도 원본배열에는 영향을 미치지 않음
<button onclick="test2();">concat 테스트</button> <div id="area2" class="area"></div> <script> function test2(){ var arr1 = ['사과', '딸기', '바나나']; var arr2 = ['apple', 'strewberry', 'banana']; var area2 = document.getElementById('area2'); var arr3 = arr1.concat(arr2); area2.innerHTML += arr3 + '<br>'; area2.innerHTML += 'arr3 typeof : ' + typeof(arr3) + '<br>'; }
JavaScript
복사
3.join() : 배열을 결합하여 문자열로 반환한다
<button onclick="test4();">join 테스트 </button> <div id="area3" class="area"></div> <script> function test4(){ var arr1 = ['2021년', '1월', '17일']; var arr2 = ['일요일', 'Sunday', 'Evening']; var arr3 = arr1.join(); console.log(arr3); area3 = document.getElementById('area3'); console.log(area3); area3.innerHTML += arr1 + '<br>'; area3.innerHTML += arr2 + '<br>'; area3.innerHTML += arr3 + '<br>'; area3.innerHTML +=' arr3 의 type :' + typeof(arr3) + '<br>'; area3.innerHTML += 'arr1 의 type : '+ typeof(arr1) + '<br>'; } </script>
JavaScript
복사
4.reverse() : 배열의 순서를 뒤집는다.
원본 배열의 영향을준다
<button onclick="test5();"> reverse테스트 </button> <div id="area4" class="area"></div> <script> function test5(){ var arr3 = [1,2,3,4,5,6,7,8,9,10]; area4.innerHTML += "원래배열은" + arr3 + '<br>'; area4 = document.getElementById('area4'); var arr4 = arr3.reverse(); area4.innerHTML += "reverse()는 원본배열에 영향을 미칩니다 기억하세요" + arr4 +'<br>'; area4.innerHTML += "reverse() 쓴후 arr3 의배열 : " + arr3 +'<br>'; } </script>
JavaScript
복사
5. sort() : 배열을 내림차순 혹은 오름차순으로 정렬한다.
원본배열의 영향을준다
내림차순 정렬 arr.sort(function(left, right) { return right - left;
<button onclick="test6();">sort 테스트</button> <div id ="area5" class="area"></div> <script> function test6(){ var arr = ['가시리', '블루밍', '내손을 잡아', '밤편지','가가']; var arr2 = arr.sort(); var area5 = document.getElementById('area5'); area5.innerHTML += arr2 + '<br>'; area5.innerHTML += arr.sort(function (left,right){ return right-left; }); } </script>
JavaScript
복사
7. push() : 배열의 맨 뒤에 요소 추가
8 .pop() : 배열의 맨 뒤 요소를 제거하고 리턴
</script> <button onclick="test7();">push(),pop()테스트</button> <div id="area7" class="area"></div> <script> function test7(){ var arr =['안녕', 'hi']; arr.push('ni hao'); var area7 = document.getElementById('area7'); area7.innerHTML += arr + '<br>'; arr.pop(); area7.innerHTML += arr + '<br>'; } </script> </body>
JavaScript
복사
9.shift() : 배열의 맨 앞에 요소 제거
10.unshift() : 배열의 맨 앞에 요소 추가
<button onclick="test8();">shift(),unshift()테스트</button> <div id="area8" class="area"></div> <script> function test8(){ var arr = ['스위트홈', '킹덤', '승리호']; var area8 = document.getElementById('area8'); arr.shift(); area8.innerHTML += arr + '<br>'; arr.unshift('스위트홈'); area8.innerHTML += arr + '<br>'; } </script>
JavaScript
복사
11.slice() : 배열의 요소를 선택해서 잘라내기
slice(시작인덱스, 종료인덱스) : 원본 배열에 영향을 주지 않는다
12. splice(index, 제거수, 추가값) : 원본 배열에 영향을 준다
<h4>slice() : 배열의 요소를 선택해서 잘라내기<br> splice() : 배열의 index위치의 요소 제거 및 추가</h4> <div id="area10" class="area"></div> <button onclick="methodTest8();">slice, splice확인</button> <script> function methodTest8() { var area10 = document.getElementById('area10'); var arr = ['가자', '어디로', '집으로', '가야지']; area10.innerHTML += 'arr : ' + arr + '<br>'; //slice(시작인덱스, 종료인덱스) : 원본 배열에 영향을 주지 않는다 area10.innerHTML += 'slice() : ' + arr.slice(1, 2) + '<br>'; area10.innerHTML += 'arr : ' + arr + '<br>'; //splice(index, 제거수, 추가값) : 원본 배열에 영향을 준다. area10.innerHTML += 'splice() : ' + arr.splice(2, 2, '강남으로') + '<br>'; area10.innerHTML += 'arr : ' + arr + '<br>'; } </script>
JavaScript
복사
13 . toString() : 배열을 문자열로 반환한다.
<h4>toString() : 배열을 문자열로 반환한다.</h4> <div id="area11" class="area"></div> <button onclick="methodTest9();">확인하기</button> <script> function methodTest9() { var area11 = document.getElementById('area11'); var arr = ['나는', '오늘', '부터', '다이어트를', '시작한다.']; area11.innerHTML += 'arr : ' + arr + '<br>'; area11.innerHTML += 'arr.toString() : ' + arr.toString() + '<br>'; area11.innerHTML += 'typeof() : ' + typeof(arr.toString()) + '<br>'; area11.innerHTML += 'join() : ' + arr.join() + '<br>'; area11.innerHTML += 'typeof() : ' + typeof(arr.join()) + '<br>'; area11.innerHTML += 'join("/") : ' + arr.join('/') + '<br>'; } </script>
JavaScript
복사