// push
// 배열의 마지막 요소로 추가
const arr1 = [1, 2, 3];
arr1.push(4);
console.log(arr1); // [1, 2, 3, 4]
// pop
// 배열의 마지막 요소를 제거
const arr2 = [1, 2, 3];
arr2.pop();
console.log(arr2); // [1, 2]
// unshift
// 배열의 첫 번째 요소로 추가
const arr3 = [1, 2, 3];
arr3.unshift(0);
console.log(arr3); // [0, 1, 2, 3]
// shift
// 배열의 첫 번째 요소를 제거
const arr4 = [1, 2, 3];
arr4.shift();
console.log(arr4); // [2, 3]
const arr = ['a', 'b', 'c', 'd'];
const str = arr.join();
console.log(str); // 'a,b,c,d'
console.log(arr.join('-')); // 'a-b-c-d'
console.log(arr.join(', ')); // 'a, b, c, d'
let arr = ['a', 'b', 'c', 'd'];
console.log(arr1.splice(0, 2)); // ['a', 'b']
// 원본 배열을 변경함
console.log(arr1); // ['c', 'd']
// 요소를 삭제하지 않고 추가
arr = [1, 2, 3, 4];
arr.splice(4, 0, 5); // 인덱스 4부터 0개의 요소를 제거하고 새로운 요소 5을 삽입
console.log(arr); // [1, 2, 3, 4, 5]
// slice
const arr2 = ['e', 'f', 'g', 'h'];
const sliceArr = arr2.slice(0, 2);
console.log(sliceArr); // ['e', 'f']
console.log(arr2); // ['e', 'f', 'g', 'h']
const arr = [1, 2, 3, 4];
const reverseArr = arr.reverse();
console.log(reverseArr); // [4, 3, 2, 1]
console.log(arr); // [4, 3, 2, 1]
const arr = [1, 2, 3, 4];
const result = arr.fill(5);
console.log(result); // [5, 5, 5, 5]
console.log(arr); // [5, 5, 5, 5]
const arr = [1, 2, 3, 4];
arr.includes(4); // true
arr.includes(0); // false
const arr1 = [5, 1, 4, 3, 2];
arr1.sort(); // [1, 2, 3, 4, 5]
// 유니코드의 순서를 따르므로 숫자 요소로 이루어진 배열은 비교 함수를 인수로 전달
const arr2 = [10, 5, 100, 1, 50];
arr2.sort(); // [1, 10, 100, 5, 50]
arr2.sort((a, b) => a - b); // [1, 5, 10, 50, 100]
// 객체를 요소로 갖는 배열
const arr3 = [
{ id: 3, text: 'hello' },
{ id: 6, text: 'javascript' },
{ id: 4, text: 'react' }
];
arr3.sort((a, b) => a.id - b.id);
// [{ id: 3, text: "hello" }, { id: 4, text: "react" }, ...]
arr.sort((a, b) => b.id - a.id);
// [{ id: 6, text: "hello" }, { id: 4, text: "react" }, ...]
const arr = [1, 2, 3];
arr.forEach((item, i) => console.log(`index: ${i}, itme: ${item}`));
// index: 0, itme: 1
// index: 1, itme: 2
// index: 2, itme: 3
arr.forEach(item => console.log(item * item));
// 1
// 4
// 9
const users = ['alice', 'bong', 'cara', 'dana'];
const goodUsers = users.map(user => `${user}👍`);
console.log(goodUsers); // ['alice👍', 'bong👍', 'cara👍', 'dana👍']
const students = [
{ name: 'anna', score: 90 },
{ name: 'elsa', score: 85 },
{ name: 'coco', score: 80 },
{ name: 'lulu', score: 95 },
];
const highScore = students.filter(student => student.score >= 90);
console.log(highScore);
// [{ name: "anna", score: 90 }, { name: "lulu", score: 95 }]
// reduce((accumulator-초기값, currentValue, index, array) => {
// return ...
// }, initialValue-없으면 배열의 첫 번째 요소를 사용하며 오류가 발생함)
const sum = [1, 3, 6].reduce((acc, cur) => {
console.log(acc, cur);
return acc + cur;
}, 0);
// 0 1
// 1 3
// 4 6
console.log(sum); // 10
flat some find findIndex flatMap