javscript는 다른 언어와는 다르게 타입을 동적으로 정의되게 때문에 하나의 자료구조에 타입이 서로 다른 Object들을 담을 수 있다. 항상 같은 타입을 담으려고 하쟈 ㅎㅎ
선언과 APIs 정리!
const arr = new Array();
const arr2 = [1,2,3];
const arr = ["apple", "banana", "carrot", "mango"];
for (let i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
const arr = ["apple", "banana", "carrot", "mango"];
for (let value of arr) {
console.log(value);
}
배열 안 각각의 element에 대한 callback 함수를 실행할 수 있다!!즉 배열의 element마다 우리가 설정한 함수를 호출한다고 이해하자!!
forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
arr.forEach(function (value, index, arr) {
console.log(value, index, arr);
});
Arrow function을 사용하여 더욱 간결하게 적용할 수 있다.
arr.forEach((value, index, arr) => {
console.log(value, index, arr);
});
push, pop
const arr = ["apple", "banana", "carrot", "mango"];
arr.pop();
arr.push("peach");
console.log(arr);
이 때! pop()을 사용해 꺼내온 요소는 변수에 저장해 사용할 수 있다!!
const arr = ["apple", "banana", "carrot", "mango"];
const element = arr.pop();
console.log(arr);
console.log(element);
shift, unshift
const arr = ["apple", "banana", "carrot", "mango"];
const ele = arr.shift();
arr.unshift("orange");
console.log(arr);
console.log(ele);
pop
과 push
다!pop
과push
는 배열의 다른요소들에 영향을 미치지 않고, 마지막 부분의 값에만 영향을 미치기 때문이다.shift
,unshift
의 경우에는 다른 배열들이 더하고 뺀 부분을 채워가며 인덱싱을 다시 해줘야 하기 때문에 더 많은 비용을 필요로 한다!splice
사용법
splice(start: number, deleteCount?: number): T[];
const arr = ["apple", "banana", "carrot", "mango"];
arr.splice(2, 3);
console.log(arr);
["apple","banana"]
두가지만 남게 된다!사용법2
splice(start: number, deleteCount: number, ...items: T[]): T[];
const arr = ["apple", "banana", "carrot", "mango"];
arr.splice(2, 2, "grape", "melon");
console.log(arr);
concat(...items: ConcatArray<T>[]): T[];
parameter에 합치고자 하는 배열을 넣어주면 합쳐진 새로운 배열을 생성해 낸다!
const arr = ["apple", "banana", "carrot", "mango"];
const arr2 = ["pineapple", "egg"];
const mixedArr = arr.concat(arr2);
console.log(mixedArr);
const arr = ["apple", "banana", "carrot", "mango"];
//index 찾기
console.log(arr.indexOf("banana")); //1
console.log(arr.indexOf("peach")); //-1
console.log(arr.includes("mango")); //true
console.log(arr.includes("peach"));//false
그런데 만약 배열에 중복된 값이 존재한다면, index를 어떻게 찾아야할까?
const arr = ["apple", "banana", "carrot", "mango", "banana"];
console.log(arr.indexOf("banana")); //1
console.log(arr.lastIndexOf("banana")); //4