* 영어표기가 디폴트, 이하 한글표기
* Angular 기준
0. 배열 (Array) 이란?
- 자료구조, 집합
- 같은 타입의 변수들로 이루어진 유한 집합
1. 표기관련
1). 변수처럼 유형을 지정하여 선언한다. (ex). JavaScript: int numArray = []; / TypeScript: unmArray: number[] = [];
1-1). 유형에 맞춰 인자를 삽입한다.
- 대괄호 안에 인자를 넣는 방식인데, 위에는 int ~ number 형 이므로 [1, 2, 3, 4] 등. 숫자를 넣을 수 있다.
2). 배열의 n 번째는 다음과 같이 호출할 수 있다.
numArray = [1, 2, 3, 4]
1 | 2 | 3 | 4 |
numArray[0] = 1
numArray[1] = 2
numArray[2] = 3
numArray[3] = 4
- 중요 포인트는 배열의 가장 첫번째는 [1]이 아니고 [0] 이다.
3). Angular 기준, interface 선언을 통해 해당 배열의 유형을 정의하였을 경우.
3-1). 해당 배열의 값은 정의된 인터페이스에 맞춰 입력해야한다.
(ex).
interface StrArray {
banana: string,
tomato: string
}
StrArray 라는 유형을 인터페이스로 정의
numArray: number[] = [];
strArray: string[] = [];
testArray: StrArray[] = [];
numArray, strArray, testArray 는 각각 숫자 배열, 문자열 배열, StrArray 배열
순서대로 다음과 같은 인자를 가질 수있다.
[1, 2, 3] / ['abc', 'def', 'ghi'] / [{banana: 'abc', tomato: 'def'}]
this.testArray = [{banana: '', tomato:''}]
console.log(this.testArray); // [{banana: " ", tomato: " "}]
this.testArray = [{banana: '11', tomato:'22'}]
this.testArray.push({banana: '', tomato:''})
console.log(this.testArray); // [{banana: '11', tomato: '22'}, {banana: '', tomato:''}]
console.log(this.testArray[0]); // {banana: '11', tomato: '22'}
4). 내가 자주 하는 실수인데.. 배열에 값을 집어넣을때
4-1).
oneArray: number[] = [];
this.oneArray = [1, 2, 3, 4]
console.log(this.oneArray) // [1, 2, 3, 4]
this.oneArray.push(5, 6, 7, 8)
console.log(this.oneArray) // [1, 2, 3, 4, 5, 6, 7, 8]
this.oneArray = [1, 2, 3, 4]
console.log(this.oneArray) // [1, 2, 3, 4]
= 은 그 자체 값을 대입하는것, push 는 추가로 값을 더해주는것
5). 전에 했던 실수) 이중배열, 다른 곳에서 데이터를 받아온걸 또 사용한다거나.... 이유가 정확히 기억나는건 아닌데.
주소 개념으로. 주소는 잘 있는데 데이터를 제대로 못가져올수 있으니. 이 부분 따로 더 공부할것
3. 정리 및 기타
- 배열을 활용하면 좋은 이유를 예로 들면
3학년의 특정 반 학생들을 한명 한명 지목하는것 vs 3학년 n반으로 지목하는 것 등
(김가가, 김나나, 김다다 ..... 총 30명) (3학년 3반 학생들)
더 효율적으로 사용할 수 있으니. 배열을 적극적으로 활용해보자.
- 특정 데이터 출력을 원할 때 ~ HTML 에 변수를 연결하여 띄워줄 때.
배열을 활용하면 순차적으로 저장된, 배열의 n 번째를 지정하여 사용할 수있다.
이건 실제로 본인이 연습해보면 와닿을듯.
'프로그래밍 기초 > 기초문법' 카테고리의 다른 글
filter, forEach (0) | 2023.02.22 |
---|---|
callback (0) | 2023.01.13 |
저급언어와 고급언어 (0) | 2022.11.04 |
객체지향_2 (0) | 2022.11.04 |
undefined, null (1) | 2022.09.30 |