반응형
배열이란?
배열이란 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입이다. 변수가 하나의 데이터를 저장하기 위한 것이라면 배열은 여러 개의 데이터를 하나의 변수에 저장하기 위한 것이라고 할 수 있다.
배열의 생성
여러 개의 데이터를 하나의 변수에 담아서 관리할 수 있는 방법으로 배열을 쓰면 된다.
var member = ['kim', 'jin', 'soek']
변수 member에 담아보고자하는 정보를 대괄호([])는 배열을 만드는 기호다. 대괄호 안에 데이터를 콤마(,)로 구분해서 나열하면 배열이 된다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script>
var member = ['kim', 'jin', 'seok']
alert(member[0]);
alert(member[1]);
alert(member[2]);
</script>
</body>
</html>
- 배열에 담겨있는 값을 가져올 때는 대괄호 안에 숫자를 넣는다. 이 숫자를 색인(index)라고 부르고 0부터 시작한다. 즉 첫번째 원소(egoing)를 가져오려면 대괄호 안에 0을 넣어주어야 한다는 것이다.
- 두번째는 1, 세번째는 2를 입력한다. 이 값을 이용해서 배열에 저정된 값을 가져올 수 있다.
배열의 사용
배열의 진가는 반복문과 결합했을 때 나타난다. 반복문으로 리스트에 담긴 정보를 하나씩 꺼내서 처리 할 수 있기 때문이다.
아래 코드처럼 결합했을때 매우 간결하면서도 효율적으로 코드를 짤 수 있다.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
<script>
function get_members(){
return ['kim', 'jin', 'soek'];
}
members = get_members();
for(i = 0; i < members.length; i++){
document.write(members[i].toUpperCase());
document.write('<br />');
}
</script>
</body>
</html>
- 위의 코드에서 .length는 배열에 담긴 값의 개수를 숫자로 알려준다.
- .toUpperCase()는 members[i]에 담긴 문자를 대문자로 변환해준다.
- 반복문을 이용해서 배열 members의 내용을 하나씩 꺼낸 후에 이름의 첫글자를 .toUpperCase()을 이용하여 대문자로 변경한 후에 출력하고 있다.
- 정리하면, 배열이란 연관된 정보를 하나의 그룹으로 관리하기 위해서 사용한다. 그리고 그 정보를 처리 할 때는 반복문을 이용한다.
배열의 제어
배열은 복수의 데이터를 효율적으로 관리, 전달하기 위한 목적으로 고안된 데이터 타입이다. 따라서 데이터의 추가/수정/삭제와 같은 일을 편리하게 할 수 있도록 돕는 다양한 기능을 가지고 있다.
추가
Push
- push는 인자로 전달된 값을 배열(li)에 추가하는 명령이다. 배열 li의 값은 a, b, c, d, e, f가 됐다.
Concat
- Concat은 복수의 원소를 배열에 추가하는 방법으로 인자로 전달된 값을 추가하는 명령이다.
Unshift
- Unshift는 배열의 시작점에 원소를 추가하는 방법이다. 인자로 전달한 값을 배열의 첫번째 원소로 추가하고 배열의 기존 값들의 색인을 1씩 증가시킨다.
Splice
- Splice는 첫번째 인자에 해당하는 원소부터 두번째 인자에 해당하는 원소의 숫자만큼의 값을 배열로부터 제거한 후에 리턴한다. 그리고 세번째 인자부터 전달된 인자들을 첫번째 인자의 원소 뒤에 추가한다.
- 두번째 인덱스 뒤에 대문자 B를 넣게 되었다.
- array.splice(index, howmany, element1, ...., elementN); 첫번째 인자는 배열에 추가할 특정 배열의 위치를 가르키며 두번째 인자는 index에서부터 제거될 원소들의 수. index부터 index+howmany에 해당하는 원소들은 삭제되게 한다. 이 값이 0이면 어떠한 원소도 삭제되지 않는다. 세번째 인자는 index와 index+howmany 사이에 추가될 값이다.
제거
Shift
- Shift을 사용하면 배열의 첫번째 원소를 제거할 수있다.
Pop
- Pop은 배열 끝점의 원소를 배열 li에서 제거한다.
정렬
Sort
- 알파벳 순서를 차례대로 정렬하도록 하였다.
- 숫자 또한 순서대로 정렬할 수 있다. 하지만 숫자의 경우 암시적으로 문자열로 형변환 하기 때문에 숫자1이 숫자 10보다 먼저 나온다.
- array.sort(sortfunc)
- sortfunc 로 비교 대상인 두개의 인자를 전달하는데, 리턴 값에 따라서 선후를 판단한다.
- 여기서 return은 array, 정렬된 배열, 자기 자신에 대한 레퍼런스 값이라도 할 수 있다. 이때 sort함수는 콜백함수이고 콜백함수의 파라미터는 a와b 즉 두 값을 순차적으로 비교하기 위한 문법이다. 즉 콜백함수는 return이 당연이 있어야 한다고 볼 수 있다.
- 수행 과정을 분석해보면 return a-b인 경우 비교 대상인 a와 b가 인자로 전달된다. alert('a :'+a+', b:'+b);a에서 b를 뺀 결과가 음수면 a가 b보다 작고, 0이면 같다. sort메소드는 return 값이 음수,양수,0인지에 따라서 순서를 정한다.
- return b-a는 그 반대인 경우이다.
Reverse
- Reverse는 역순으로 정렬하고 싶을 때는 사용한다.
반응형
'프로그래밍 개발 > JS 기본 언어' 카테고리의 다른 글
Javascript 모듈(module)에 대하여 (0) | 2020.11.06 |
---|---|
Javascript 객체(object) 및 객체 지향 프로그램 (0) | 2020.11.06 |
Javascript 함수(Function) (0) | 2020.11.05 |
javascript 반복문(Loop) (0) | 2020.11.05 |
Javascript 조건문의 문법 (0) | 2020.11.03 |
댓글