→ 배열 “자체”를 변경하는지 혹은 “새로운” 배열을 반환하는지를 중점으로 살펴보기
const fruits = ["banana", "apple", "lemon"];
// 특정한 오브젝트가 배열인지 아닌지 체크
console.log(Array.isArray(fruits)); //true
console.log(Array.isArray({})); //false 빈오브젝트
//특정한 아이템의 위치를 찾을 때
console.log(fruits.indexOf("banana"));
//배열안에 특정한 아이템이 존재하는지 확인
console.log(fruits.includes("apple")); //true
console.log(fruits.includes("melon")); //false
// 추가하기 - 제일 뒤
// *배열 자체를 수정함
fruits.push("peach");
console.log(fruits);
console.log(fruits.length);
// 추가하기 - 제일 앞
// *배열 자체를 수정함
fruits.unshift("strawberry");
console.log(fruits);
console.log(fruits.length);
// 제거하기 - 제일 뒤
// *배열 자체를 수정함
let lastItem = fruits.pop();
console.log(fruits);
console.log(lastItem);
// 제거하기 - 제일 앞
// *배열 자체를 수정함
let firstItem = fruits.shift();
console.log(fruits);
console.log(firstItem);
// 배열 중간에 추가 또는 삭제하기
// *배열 자체를 수정함
//fruits.splice(시작하는 index, 개수);
let deleted = fruits.splice(1, 1);
console.log(deleted);
console.log(fruits);
//fruits.splice(시작하는 index, 개수, 추가할 배열);
fruits.splice(0, 1, "peach", "melon");
console.log(fruits);
console.log(fruits.length);
// 잘라진 "새로운" 배열을 만듬
// 기존 배열은 수정되지 않음
//fruits.slice(시작할 index, 적힌 index "전"까지)
fruits.push("apple", "strawberry");
console.log(fruits);
//[ 'peach', 'melon', 'lemon', 'apple', 'strawberry' ]
let newArray = fruits.slice(2, 4);
console.log(newArray);
console.log(fruits);
//여러개 배열을 붙여줌
// 기존 배열은 수정되지 않음
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const arr3 = arr1.concat(arr2);
console.log(arr3);
// 순서 거꾸로
// *배열 자체를 수정함
const arr4 = arr3.reverse();
console.log(arr4);
console.clear();
//중첩 배열을 하나의 배열로 쫙 펴기
// 기존 배열은 수정되지 않음
let arr = [
[1, 2, 3],
[4, [5, 6]],
];
console.log(arr);
console.log(arr.flat(2));
arr = arr.flat(2);
console.log(arr);
//특정한 값으로 배열을 채우기
// *배열 자체를 수정함
arr.fill(0);
console.log(arr);
// arr.fill(특정 값, 시작 index, 적힌 index "전"까지);
arr.fill("a", 1, 3);
console.log(arr);
arr.fill("t", 2);
console.log(arr);
//배열을 문자열로 합하기
// *배열 자체를 수정함
let text = arr.join();
console.log(text);
text = arr.join(" | ");
console.log(text);