본문으로 바로가기

Array (배열)

category Javascript 2019. 11. 4. 14:58

개념


  • 순서가 중요한 데이터를 담는다.
  • 0부터 시작해서 1씩 증가하는 index가 자동으로 부여된다.
  • 대괄호 [ ]열고 닫고 해서 만들 수 있다.
// 숫자를 배열에 담기
var nums=[10,20,30,40,50];

// 문자열을 배열에 담기
var names=["김구라", "해골", "원숭이", "주뎅이", "덩어리"];

 

Array 방 크기 참조
//arry의 방의 크기 참조
// 변수명.length;

names.length;

var size=names.length;

 

Array에 data 추가, 삭제, 변경


data 추가하기

push내장객체로 추가하기

//객체명.push(추가할data)

var names=["김구라", "해골", "원숭이", "주뎅이", "덩어리"];

names.push("돼지");

//var names=["김구라", "해골", "원숭이", "주뎅이", "덩어리", "돼지"];

 

data 삭제하기

splice내장객체로 추가하기

//arry의 data 삭제하기
//변수명.splice(삭제할 index, 갯수);

var names=["김구라", "해골", "원숭이", "주뎅이", "덩어리"];

names.splice(2, 1); //var names=["김구라", "해골", "주뎅이", "덩어리"];

 

data 변경하기
document.querySelectorAll("요소명")[index].innerText=변경할 값;

//예시
var names=["김구라", "해골", "원숭이","주뎅이","덩어리"];

document.querySelectorAll("div")[3].innerText="짱구";  
//var names=["김구라", "해골", "원숭이","짱구","덩어리"];

 

 

가변배열


  • 프로그래밍 시점에 배열의 사이즈를 알 수 없고, 클라이언트가 요청하는 대로 배열의 사이즈가 바뀌는 것

 

예시

문제1.

input에 친구이름을 입력후 추가 버튼을 누르면 배열에 친구이름이 저장되도록해보세요.

(친구이름 저장 후 input에 입력되어 있는 text는 자동으로 지워지게 처리하세요)

문제2.

목록보기 버튼을 클릭하면 console에  문제1에서  추가된 배열이 출력되도록 해보세요.

 

<body>
    <input id="myFriend" placeholder="친구이름 입력"/>
    <button onclick="add();">추가</button>
    <button onclick="list();">목록보기</button>
    <script>
        var friend=[];
        // 문제1.
        var add=function(){
            //input의 value 값 갖고 오기
            var a=document.querySelector("#myFriend").value;
            //배열에 넣어주기
            friend.push(a);
            //input에 입력한 value값 넣어 주기
            document.querySelector("#myFriend").value="";
        };

        //문제2
        /*
        클라이언트의 요청에 따라 배열에 친구이름이 추가되므로
        프로그래밍 시점에는 얼마나 추가 될지 모른다. 
        따라서 반복문으로 배열의 방이 증가되는 만큼 자동으로
        콘솔에 찍힐 수 있도록한다.
        */
        var list=function(){
            for(var i=0; i<friend.length; i++){
                console.log(friend[i]);
            }
        };
    </script>
</body>

 

 

연습문제


var nums=[10,20,30,40,50];
var names=["김구라", "해골", "원숭이", "주뎅이", "덩어리"];

 

문제1. nums 배열의 1번방에 있는 값을 a라는 이름의 변수에 담아 보세요.

var a=nums[1];

 

문제2. nums 배열의 0번방에 100이라는 값을 담아 보세요.

nums[0]=100;

 

문제3. nums 배열의 4번방에 300이라는 값을 담아 보세요.

nums[4]=300;

 

문제4. names 배열의 2번방에 "신현호"라는 값을 담아 보세요.

names[2]="신현호";

 


<div>div1</div>
<div>div2</div>
<div>div3</div>
<div>div4</div>
<div>div5</div>
<script>
	var names=["김구라", "해골", "원숭이","주뎅이","덩어리"];
</script>

 

문제1. 위 5개 div의 innerText를 names 배열에 있는 문자열을 이용해서 페이지가 로딩되는 시점에 모두 순서대로 바꿔보세요.

document.querySelectorAll('div')[0].innerText=names[0];
document.querySelectorAll('div')[1].innerText=names[1];
document.querySelectorAll('div')[2].innerText=names[2];
document.querySelectorAll('div')[3].innerText=names[3];
document.querySelectorAll('div')[4].innerText=names[4];

 

문제2. 위 5개 div의 innerText를 names 배열에 있는 문자열을 이용해서 button을 클릭했을때 모두 순서대로 바꿔보세요.

<body>
	<button type="button" onclick="change()">바꾸기</button>
	<script>
	var change=function(){
 	       document.querySelectorAll('div')[0].innerText=names[0];
 	       document.querySelectorAll('div')[1].innerText=names[1];
 		   document.querySelectorAll('div')[2].innerText=names[2];
	       document.querySelectorAll('div')[3].innerText=names[3];
	       document.querySelectorAll('div')[4].innerText=names[4];
		};
	</script>
</body>

 

 


문제1. input 요소에 문자열을 입력하고 저장 버튼을 누르면 입력한 문자열을 읽어와서 msgs 배열에 누적(저장)시켜보세요.

<body>
<input type="text" id="one"/>
<button onclick="save();">저장</button>

<script>
var msgs=[];

var save=function(){
	var inputMsg=document.querySelectorAll("input")[0].value;
	// var inputMsg=document.querySelector("#one").value;
	msgs.push(inputMsg);
	alert("배열에 저장했습니다.");
};
</script>
</body>

 

'Javascript' 카테고리의 다른 글

javascript로 HTML 문서에 접근하고 contents변경해보기  (0) 2019.11.05
Function(함수)  (0) 2019.11.04
Plain object (객체)  (0) 2019.11.04
Number (수치형)  (0) 2019.11.04
Boolean type (논리형)  (0) 2019.11.04