자바스크립트의 배열 api들을 정리해보는 글이다.
toLocaleString()
배열을 String으로 바꾸어 리턴해준다. toString()과 다른 점은 배열 안의 아이템들까지 String으로 바뀐다는 것이다.
pop()
배열의 마지막 아이템을 제거한다. 만약 배열이 비었다면 (배열 안에 아이템이 없다면), undefined가 리턴되고 배열은 바뀌지 않는다.
push(...items: T[])
배열의 끝에 새 아이템을 넣고 배열의 길이를 리턴한다. 인자로는 배열에 추가될 새로운 아이템들이다. 하나를 넣어도 되고, 여러개를 넣어도 된다.
concat(...items: ConcatArray[])
두개 이상의 배열들을 하나로 합친다. 합쳐지는 배열들을 변형하지 않고 새로운 배열에 합친 결과물을 리턴한다. 인자로는 배열의 끝에 합쳐질 배열들을 받는다.
join(separator?: string)
배열 안의 모든 아이템들을 string으로 바꾸어 리턴한다. 인자는 리턴값에서 각 아이템들을 구분해주는 문자이다. 인자를 지정해주지 않으면 디폴트값인 ,을 사용해 아이템들이 구분된다.
cf) string을 array로 바꾸려면? split('구분자')을 사용하자. 구분자를 특정짓지 않고 split을 사용하면 변수에 여러 string 아이템이 있어도 배열로 바뀔때 하나의 아이템이 된다. 배열의 아이템 수를 설정할 수도 있다.
const fruits = 'kiwi, banana, cherry';
const result = fruits.split(',', 2);
console.log(result);
// output: ['kiwi', 'banana']
reverse()
기존 배열 값들의 순서가 반대인 배열을 리턴한다. 주의할 점은 기존 배열 또한 아이템의 순서가 반대로 바뀐다는 것이다.
const array = [1, 2, 3, 4, 5];
const result = array.reverse();
console.log(result);
console.log(array);
// output:
// [5, 4, 3, 2, 1]
// [5, 4, 3, 2, 1]
slice(start?: number, end?: number)
배열의 일부분을 기존 배열을 바꾸지 않고 배열형태로 리턴한다. 시작 인덱스부터 끝 인덱스 전까지의 아이템이 리턴된다. 시작인덱스가 정의되지 않으면 0부터 시작되고, 끝 인덱스가 정의되지 않으면 배열 끝까지의 아이템이 리턴된다.
some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any)
콜백함수에서 정의되는 조건에 해당하는 값이 있으면 true를, 없으면 false를 리턴한다. predicate는 조건에 맞는 값이 있을 때까지 배열 내의 모든 요소마다 불린다.
every()
배열의 모든 값이 콜백함수에서 정의되는 조건에 맞다면 true를, 하나라도 맞지 않으면 false를 리턴한다.
map(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any))
배열의 각 요소마다 정의된 콜백함수를 부르고, 각각의 함수 아웃풋들이 배열로 묶여 리턴된다.
filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any)
콜백함수에 명시된 조건을 만족하는 배열의 요소들을 배열형태로 리턴한다. 콜백함수는 배열의 요소마다 호출된다. 화살표 뒤에 조건을 정의해주면 된다.
reduce((previousValue, currentValue) => {}, initialValue?);
배열 내의 모든 요소마다 콜백함수를 부르고, 콜백함수의 리턴값은 누적되어 다음번에 함수가 불릴 때 argument로 사용된다. previousValue는 콜백함수의 리턴값이고, currentValue는 배열의 요소이다. initialValue를 설정하면 initialValue가 첫번째 previousValue가 되어 initialValue부터 축적이 시작된다.