일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 홈베이킹
- forEach
- TypeScript
- 울산맛집
- slice
- sqld
- size
- Vue
- vuejs
- set
- 정보처리기사
- 오븐
- SQL 전문가
- TS
- undefined
- 울산 맛집
- SQL
- 함수
- 울산 남구 맛집
- 휘낭시에
- 객체
- Map
- Javascript
- Has
- 자바스크립트
- let
- 배열
- Delete
- clear
- 화살표 함수
- Today
- Total
Bae
[TypeScript] 배열 이해하기(1) 본문
ㅁ 배열 이해하기
자바스크립트에서 배열은 Array 클래스의 인스턴스이며 다음처럼 선언함
let 배열 이름 = new Array(배열 길이)
다음 코드는 Array 클래스의 인스턴스를 만든 후 push 메소드를 이용해 [1, 2, 3]으로 구성된 배열을 만듦
// array.ts
let array = new Array
array.push(1); array.push(2); array.push(3);
console.log(array) // [1, 2, 3]
배열에 담긴 각각의 값을 아이템(item) 또는 원소(element)라고 하는데, 이 글에서는 아이템이라고 부르겠음
즉, 앞 코드의 array 변수에는 3개의 아이템을 담고 있음
- [] 단축 구문
자바스크립트는 []라는 단축 구문을 제공함
다음 코드는 [] 단축 구문을 이용해 number 타입의 값으로 채운 numbers 배열과 string 타입의 값으로 채운 strings 배열을 만듦
// shorthand.ts
let numbers = [1, 2, 3]
let strings = ['Hello', 'World']
console.log(numbers, strings) //[1, 2, 3] ['Hello', 'World']
- 자바스크립트에서 배열은 객체다
자바스크립트에서 배열은 다른 언어와 다르게 객체임.
배열은 Array 클래스의 인스턴스인데, 클래스의 인스턴스는 객체이기 때문임
Array 클래스는 배열을 사용하는 데 필요한 여러 가지 메소드를 제공함
그중 Array.isArray는 매개변수로 전달받은 심벌이 배열인지 객체인지 알려줌
// isArray.ts
let a = [1, 2, 3]
let o = { name: 'Jack', age: 32 }
console.log(Array.isArray(a), Array.isArray(o)) // true false
- 배열의 타입
타입스크립트에서 배열의 타입은 '아이템 타입[]'임
예를 들어, 배열의 아이템이 number 타입이면 배열의 타입은 number[]이고, 아이템이 string 타입이면 string[]임
다음 코드는 배열에 타입 주석을 붙이는 방법을 나타냄
// array-type.ts
let numArray: number[] = [1, 2, 3]
let strArray: string[] = ['Hello', 'World']
type IPerson = { name: string, age?: number }
let personArray: IPerson[] = [{name: 'Jack'}, {name:'Jane', age:32}]
- 문자열과 배열 간 변환
어떤 프로그래밍 언어는 문자열(string)을 문자(character)들의 배열(array)로 간주함
그러나 타입스크립트에서는 문자 타입이 없고 문자열의 내용 또한 변경할 수 없음
이러한 특징 때문에 문자열을 가공하려면 먼저 문자열을 배열로 전환해야 함
보통 문자열을 배열로 전환할 때는 string 클래스의 split메소드를 사용함
split 메소드는 문자열을 문자로 쪼개는 기준인 구분자(delimiter)를 입력받아 문자열을 string[] 배열로 만들어 줌
split(구분자: string): string[]
다음의 split 함수는 매개변수로 전달받은 문자열과 구분자를 이용해 String 클래스의 split 메소드를 호출함으로써 string[] 타입의 배열로 만들어 줌
// split.ts
export const split = (str: string, delim: string = ''): string[] => str.split(delim)
다음은 split 함수를 테스트하는 코드로서 구분자를 생략한 예와 '_'를 사용한 예 두 가지를 보여줌
// split-test.ts
import {split} from './split'
console.log(
split('hello'), // ['h', 'e', 'l', 'l', 'o']
split('h_e_l_l_o','_') // ['h', 'e', 'l', 'l', 'o']
)
string[] 타입의 배열을 다시 string 타입으로 변환하려면 Array 클래스의 join 메소드를 사용함
join(구분자: string): string
다음은 join 메소드를 이용하는 사용자 정의 함수 join을 작성한 예임
join 함수는 매개변수로 전달받은 string[] 타입 배열과 구분자를 이용해 String 클래스의 join 메소드를 호출함으로써 문자와 구분자를 결합한 새 문자열을 반환함
// join.ts
export const join = (strArray: string[], delim: string=''): string => strArray.join(delim)
다음은 join 함수에 string[] 타입의 배열을 전달해서 구분자에 따라 어떤 내용의 문자열로 바뀌는지 보여주는 예임
// join-test.ts
import {join} from './join'
console.log(
join(['h', 'e', 'l', 'l', 'o']), // hello
join(['h', 'e', 'l', 'l', 'o'], '_'), // h_e_l_l_o
)
[출처: Do it 타입스크립트 프로그래밍]
'TypeScript' 카테고리의 다른 글
[TypeScript] 선언형 프로그래밍과 배열(1) (0) | 2023.03.04 |
---|---|
[TypeScript] 배열 이해하기(2) (0) | 2022.04.14 |
[TypeScript] 클래스 메소드 (0) | 2022.03.29 |
[TypeScript] 함수 구현 기법 (0) | 2022.03.28 |
[TypeScript] 일등 함수 살펴보기 (0) | 2022.03.21 |