티스토리 뷰
JavaScript 배열
자바스크립트에서는 변수 선언 시 별도의 자료형 지정이 없기 때문에
어떤 자료형의 값이 오던 한 배열에 담을 수 있다. (Java의 컬렉션과 유사)
배열의 선언(1)
형 변수이름 = [값, "값", false, [123], 50];
이런식으로 어떤 자료형의 값이 오던 한 배열에 담아서 저장할 수 있다.
 <button onclick="arrayTest();">확인</button> <br><br>
    <div id="area1" class="area small"></div>
    <script>
        function arrayTest(){
            var arr = ["안녕",'바보',50,false,[123]];
            console.log(arr);
            console.log(arr[0]);
            console.log(arr[3]);
            var div1 = document.getElementById("area1");
            for(var i=0; i<arr.length; i++){
                div1.innerHTML+=arr[i]+"<br>";
            }
            //배열의 0번인덱스에서부터 마지막인덱스까지 순차적으로 모두 접근할 목적일때
            //사용하는 반복문 = for in문
            //for(var i in arr){ //i=0 -> i=1 -> i=마지막인덱스 수 
            for(var i in arr){
                div1.innerHTML+=arr[i]+"<br>";
            }
        }
    </script>배열의 선언(2)
배열선언 시 배열의 크기를 지정한 채로 선언하거나, 크기를 지정하지 않아도 된다.
var arr1 = new Array(); // 배열의 크기가 0인 빈 배열
var arr2 = new Array(2); // 배열의 크기가 2인 배열
var arr3 = []; // 배열의 크기가 0인 빈 배열
<script>
        function arrayTest2(){
            var arr1 = new Array(); //배열의 크기가 0인 빈 배열
            var arr2 = new Array(2); //배열 크기가 2인 빈 배열
            var arr3 = []; //배열의 크기가 0인 빈 배열
            console.log(arr1);
            console.log(arr2);
            console.log(arr3);
            //배열에 값 대입
            arr1[0]="날씨";
            arr1[1]="흐림";
            arr1[2]="살짝 쌀쌀";
            arr1[10]="눈이온다";
            console.log(arr1); //배열의 크기가 11로 늘어나있다 (3~9까지는 비어있음 empty)
            
            arr2[2]=50;
            arr2[3]=10;
            console.log(arr2); //크기가 2에서 4로 자동으로 늘어남 
            //선언과 동시에 초기화
            var arr4=new Array("원하는값","안원하는값");
            console.log(arr4);
            //선언과 동시에 초기화(간편)
            var arr5=["저녁메뉴","뭐먹지","시켜먹자"];
            
            console.log(arr5);
        }
    </script>배열의 활용(1)
Array 객체의 메소드
- indexOf(찾고자하는요소) : 배열에서 해당요소가 위치해있는 인덱스를 반환해준다.
- indexOf()의 값이 -1이 출력될경우에 배열에 해당요소가 존재하지 않는것이다.
<script>
        function indexofTest(){
            var area2=document.getElementById("area2");
            var arr = ["다이어트","피자","엽기닭볶음탕","족발","식단"];
            var dinner=prompt("오늘 저녁 메뉴를 입력하세요");
            var index = arr.indexOf(dinner); //-1은 해당 배열에 없는 요소를 찾고자 했을때
            //j)해당하는 요소가 몇번째 요소에 있는지 찾아주는 함수 (디너에 입력한것이 몇번째 있니)
            console.log(index);
            //있을경우 : 당신이 입력한 메뉴는 x번째 인덱스에 있습니다
            //없을경우 : 당신이 입력한 메뉴는 없습니다
            area2.innerHTML+="당신이 선택한 메뉴는 "+dinner;
            if(index==-1){ //메뉴가 배열에 없을때
                area2.innerHTML+="는(은) 메뉴에 없습니다.<br>"
            }else{ //있을때
                area2.innerHTML+="는 "+index+"번째 있습니다.<br>";
            }
        }
            console.log(1==1); //당연히 true
            console.log(1=="1"); //true => 동등연산자 : 자료형과 무관하게 실제 값만 일치하면 true
            console.log(1==="1"); //false => 동일연산자 : 자료형과 값이 일치해야 true
    </script>
배열의 활용(2)
Concat()
- concat(배열, 배열, . . . ) : 여러개의 배열을 결합하고자 할 때 사용
- n개의 배열을 합쳐서 새로운 배열을 반환해준다.
<script>
        function concatTest(){
            var area3 = document.getElementById("area3");
            var hobby=["게임","자전거","축구보기","산책","영화보기"];
            var hobby2=["노래듣기","카페가기","잠자기","등산"];
            area3.innerHTML+="hobby1 :"+hobby +"<br>";
            area3.innerHTML+="hobby2 :"+hobby2 +"<br>";
            area3.innerHTML +="hobby1 기준으로 배열 합침 :"+hobby.concat(hobby2)+"<br>";
            area3.innerHTML +="다시 hobby1 :"+hobby+"<br>";
            //원본 배열에 영향을 끼치지 않는 메소드
            //두개의 배열을 합쳐서 새로운 배열을 반환한다.
            area3.innerHTML +="hobby2 기준으로 배열 합침 : "+hobby2.concat(hobby)+"<br>";
            //배열 여러개 합치기
            area3.innerHTML+="배열 여러개 합치기 :"+hobby.concat(hobby2,["멍때리기","클라이밍","보드타기"])+"<br>";
        }
    </script>배열의 활용(3)
reverse()
- 배열에 담긴 값들을 역순으로 바꿔주는 메소드
sort()
- 배열 안에 담긴 값들을 오름차순으로 정렬시켜주는 메소드
push(추가할 요소)
- 배열 맨 뒤에 요소를 추가하고 배열의 크기를 반환한다.
unshift(추가할 요소)
- 배열의 맨 앞에 요소 추가 후 배열의 크기를 반환한다.
shift()
- 배열의 맨 앞 요소를 제거하고 제거된 요소 반환
slice(시작, 끝)
- 배열안의 요소들을 추출하는 메소드
splice(시작, 제거수, 추가값)
- 배열의 요소를 추출해서 제거 및 추가, 추가값은 생략가능
pop()
- 배열의 맨 뒤 요소를 제거하고 제거된 요소를 반환한다.
join([구분자]) / toString()
- 배열에 담긴 값들을 하나의 문자열로 합쳐서 반환해주는 메소드
reverse() 실습
<h4>3)reverse() : 배열에 담긴 값들을 역순으로 바꿔주는 메소드</h4>
    <div id="area4" class="area small"></div>
    <button onclick="reverseTest();">역순확인</button>
    <script>
        function reverseTest(){
            var area4 = document.getElementById("area4");
            var doThing=["게임","등산","찜질방","공부","캠핑","잠자기","드라이브","에버랜드"];
            area4.innerHTML+="arr: "+doThing+"<br>";
            area4.innerHTML+="reverse arr "+doThing.reverse() +"<br>";
            area4.innerHTML+="다시 arr: "+doThing+"<br>";
            //원본 배열에 영향을 끼치는 메소드
        }
    </script>sort() 실습
 <h4>3) sort() : 배열 안에 담긴 값들을 오름차순으로 정렬시켜주는 메소드</h4>
    <div id="area5" class="area small"></div>
    <button onclick="sortTest();">정렬 확인</button>
    <script>
        function sortTest(){
            var area5 = document.getElementById("area5");
            var bestFood=["고바우설렁탕","할머니불고기","어탕국수","고치돈","스테이크","춘천닭갈비","매운족발"];
            area5.innerHTML+="arr: "+bestFood+"<br>";
            area5.innerHTML+="sort 결과 : "+bestFood.sort();+"<br>";
            area5.innerHTML+="<br>다시 arr :"+bestFood+"<br>";
            //원본 배열에 영향을 끼치는 메소드
        }
    </script>push() pop() 실습
    <div id="area6" class="area big"></div>
    <button onclick="pushPopTest();">확인</button>
    <script>
        function pushPopTest(){
            var area6=document.getElementById("area6");
            var greatPlace=["장가계","아침고요수목원","우도","브루클린브릿지","퀸스타운","발리","안나푸르나","기장"]
        
            area6.innerHTML+="arr : " +greatPlace+"<br>";
            greatPlace.push("함덕해수욕장");
            area6.innerHTML +="arr에 추가 후 "+greatPlace+" "+greatPlace.length+"<br>";
            area6.innerHTML +="arr에 추가 후 배열의 크기 "+greatPlace.push("GOP")+"<br>";
            area6.innerHTML +="다시 arr : "+greatPlace+"<br>";
            area6.innerHTML +="arr에 pop 후 : "+greatPlace.pop()+"<br>";
            area6.innerHTML +="다시 arr : "+greatPlace+"<br>";
        }
    </script>unshift(추가할요소) / shift() 실습
 <div id="area7" class="area big"></div>
    <button onclick="shiftUnshiftTest();">확인하기</button>
    <script>
        function shiftUnshiftTest(){
            var area7=document.querySelector("#area7")
            var arr=["솔의눈","데자와","민트초코우유","실론티","2%","버디언","지코"];
            area7.innerHTML += "arr : "+arr +"<br>";
            arr.unshift("아침햇살");
            area7.innerHTML += "arr에 unshift 후 "+arr+"<br>";
            area7.innerHTML += "arr에 unshift 후 배열의 크기 : "+arr.unshift("닥터페퍼")+"<br>";
            area7.innerHTML += "arr에 shift : "+arr.shift()+"<br>";
            area7.innerHTML += "arr 최종 : "+arr+"<br>";
        }
    </script>slice(시작, 끝) / splice(시작, 제거수, 추가값) 실습
<div id="area8" class="area small"></div>
    <button onclick="sliceSpliceTest();">클릭</button>
    <script>
        function sliceSpliceTest(){
            var area8=document.getElementById("area8");
            var arr = ["마라탕","굴","가지무침","닭발","곱창","홍어","오이","낙지","매생이죽"];
            area8.innerHTML+="arr : "+arr+"<br>";
            //slice(시작인덱스,끝인덱스) -> 끝 인덱스는 포함 X
            area8.innerHTML+="slice 결과 : "+arr.slice(2,4)+"<br>";
            area8.innerHTML+="최종 arr : "+arr+"<br>";
            //원본배열에 영향을 끼치지 않음
            //splice(시작인덱스,제거수,추가값(요소))
            area8.innerHTML+="splice 결과 : "+arr.splice(3,3,"회","생간","생강")+"<br>";
            area8.innerHTML+="최종 arr : "+arr+"<br>";
            //원본 배열에 영향을 끼친다.
        }
    </script>join([구분자]) / toString() 실습
<div id="area9" class="area small"></div>
    <button onclick="joinTostringTest();">클릭</button>
    <script>
        function joinTostringTest(){
            let area9=document.querySelector("#area9");
            let arr=["오늘은","월요일","주말이","너무","짧아요..."];
            area9.innerHTML+="arr : "+arr+"<br>";
            area9.innerHTML+="tostring : "+arr.toString()+"<br>";
            /*배열객체를 html 요소에 출력할 경우 내부적으로 toString메소드가 호출되어 결과앖이 나온다.*/
            area9.innerHTML+="join : "+arr.join()+"<br>";
            area9.innerHTML+="join[구분자] :"+arr.join(" ")+"<br>";
        }
    </script>'Front > Js' 카테고리의 다른 글
| JavaScript(객체 part.1) (4) | 2022.09.23 | 
|---|---|
| JavaScript(함수) (1) | 2022.09.23 | 
| JavaScript(문자열과 숫자) (1) | 2022.09.22 | 
| JavaScript(변수와자료형) (4) | 2022.09.21 | 
| JavaScript(요소가져오기) (2) | 2022.09.21 | 
					댓글
						
					
					
					
				
			
										공지사항
										
								
							
								
								
									최근에 올라온 글
									
							
								
								
									최근에 달린 댓글
									
							
								
								
									링크