//배열 생성
const arr1 = new Array();
const arr2 = [];
const arr3 = new Array(5);
//배열 초기화;
const arr5 = new Array(5).fill(5); // [5,5,5,5,5]
const arr4 = [1, 2, 3, 4, 5]; // [1,2,3,4,5]
const arr6 = Array.from(Array(5), (value, idx) => idx + 1); // [1,2,3,4,5]
배열을 생성 후에 특정한 값으로 채우고 싶다면 fill 메소드를 사용하는 것이 좋고, 각각의 인덱스마다 다른 값을 주고 싶다면 Array.from 메소드를 사용하여 각 인덱스의 값을 지정해줄 수 있다.
const arr = [1, 2, 3, 4, 5, 6];
arr.length = 3;
console.log(arr); // [1,2,3]
arr.length = 10;
console.log(arr); // [1,2,3, <empty items 7>]
const arr = [1, 2, 3, 4, 5, 6];
console.log(arr.join(", ")); // 1, 2, 3, 4, 5, 6
const arr = [1, 2, 3, 4, 5, 6];
console.log(arr.reverse()); // [6, 5, 4, 3, 2, 1]
console.log(arr); // [6, 5, 4, 3, 2, 1]
const arr1 = [1, 2, 3, 4, 5, 6];
const arr2 = [7, 8, 9, 10];
console.log(arr1.concat(arr2)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const arr = [1, 2, 3, 4, 5, 6];
arr.push(7); // [1, 2, 3, 4, 5, 6, 7]
arr.push(7, 8, 9); // [1, 2, 3, 4, 5, 6, 7, 7, 8, 9]
arr.pop(); // 9
arr.pop(); // 8
console.log(arr.pop()); // 7
console.log(arr); // [1, 2, 3, 4, 5, 6, 7]
const arr = [1, 2, 3, 4, 5, 6];
arr.shift(); // 1
arr.shift(); // 2
console.log(arr); // [3, 4, 5, 6]
arr.unshift(10);
console.log(arr); // [10, 3, 4, 5, 6]
const arr = [1, 2, 3, 4, 5, 6];
console.log(arr.slice(2, 4)); // [3, 4]
console.log(arr.slice(2)) // [3, 4, 5, 6]
console.log(arr); // [1, 2, 3, 4, 5, 6]
const arr = [1, 2, 3, 4, 5, 6];
arr.splice(2, 2); // [3, 4]
console.log(arr); // [1, 2, 5, 6]
arr.splice(1, 2, 7, 8); // [2, 5]
console.log(arr); // [1, 7, 8, 6]
일반적인 for문
const arr = [1, 2, 3, 4, 5];
for(let i = 0; i<arr.length; i++){
console.log(arr[i]);
} // 1 2 3 4 5 6
for of문
const arr = [1,2,3,4,5,6]
for(const i of arr){
console.log(i);
}// 1 2 3 4 5 6
const obj = new Object(); // {}
const obj1 = {}; // {}
const obj2 = { name: "아무개" }; // { name : "아무개"}
const obj = {};
obj["email"] = "aa@aa.com";
obj.phone = "01012345678";
console.log(obj); // { email : "aa@aa.com", phone : "01012345678" }
delete obj.phone; // true
console.log(obj) // { email : "aa@aa.com" }
const obj = { email : "aa@aa.com" };
console.log("email" in obj); //true
console.log("phone" in obj); //false
//객체의 key, value 값 가져오기
console.log(Object.keys(obj)); // [ "email" ]
console.log(Object.values(obj)); // [ "aa@aa.com" ]
const obj = { email : "aa@aa.com" };
for(let i in obj){
// 이때 i는 key값
console.log(i, obj[i]) //email aa@aa.com
}
찾고자 하는 원소의 인덱스를 알고 있다면 O(1)로 원소를 찾을 수 있다.
특정 원소를 삽입, 삭제하는데의 시간복잡도는 O(n)이 걸린다.(splice)
삽입하거나 삭제한 공간을 메꾸기 위해서 값들을 하나씩 밀거나 땡겨야 하기 때문이다.
push, pop는 O(1), unshift, shift는 O(n)의 시간복잡도를 가진다.
push, pop은 배열의 끝에서 추가 삭제 되기 때문에 다른 인덱스를 변경할 필요가 없지만 shift, unshift는 배열의 처음에 값이 추가 삭제 되는 것이기 때문에 전체 데이터에 인덱스를 변경해주어야 한다.