본문 바로가기
강의 실습/한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지

배열 내장 함수

by Jint 2023. 12. 11.

1. forEach
배열을 모든요소 1번씩 순회. 내장함수에 매개변수로 콜백함수를 전달.

const arr = [1, 2, 3, 4];

// for문을 통한 배열 순회
for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}

// forEach를 통한 배열 순회
arr.forEach((elm) => console.log(elm)); // 화설표 함수로 응용
arr.forEach(function (elm) {
    console.log(elm);
    console.log(elm * 2); // 각각의 요소에 응용가능
});


2. map
원본배열의 모든 요소를 순회하며 연산하여 return 된 값들을 따로 배열로 만들어 반환.

// 배열의 모든요소에 2를 곱하여 새로운 배열로 저장
const arr = [1, 2, 3, 4];
const newArr = [];

arr.forEach(function (elm) {
    newArr.push(elm * 2);
});

console.log(newArr); // [2, 4, 6, 8]

// map 활용
const newArr = arr.map((elm) => {
    return elm * 2;
});

console.log(newArr); // [2, 4, 6, 8]


3. includes
주어진 배열에서 전달받은 인자와 일치하는 값이 존재하는지 확인하여 boolean 값으로 return. === 연산 사용.

// 배열의 값 검사
const arr = [1, 2, 3, 4];
let number = 3;
arr.forEach((elm) => {
    if (elm === number) {
        console.log(true); // true
    }
});

// includes 사용
console.log(arr.includes(number)); // true


4. indexOf
인자와 배열 안의 값을 비교하여 인덱스 반환.

// 주어진 값이 배열에 존재하면 몇 번째 index인지 확인
const arr = [1, 2, 3, 4];
let number = "3";
console.log(arr.indexOf(number)); // -1 : 주어진 값과 배열 안에 값이 일치하는 것이 하나도 없을 경우
let number = 3;
console.log(arr.indexOf(number)); // 2


5. findIndex
해당 요소의 값과 배열 안의 값(객체)을 비교하여 인덱스 반환. 콜백함수를 전달하여, 해당 콜백함수가 true를 반환하는 첫 번째 요소 반환.

const arr = {
    {color: "red"}
  , {color: "black"}
  , {color: "blue"}
  , {color: "green"}
  , {color: "blue"}
};

console.log(arr.findIndex((elm) => {elm.color === "green"})); // 3
console.log(arr.findIndex((elm) => {elm.color === "red"})); // 0
// 주의 - 가장 먼저 조건 만족하는 index 반환
console.log(
    arr.findIndex((elm) => {
        return elm.color === "blue";
    })
); // 2


6. find
해당 요소의 값과 배열 안의 값(객체)을 비교하여 일치하는 요소 그대로 가져옴. 콜백함수를 전달하여, 해당 콜백함수가 true를 반환하는 첫 번째 요소 반환.

const arr = {
    {color: "red"}
  , {color: "black"}
  , {color: "blue"}
  , {color: "green"}
  , {color: "blue"}
};

const idx = arr.findIndex((elm) => {
    return elm.color === "blue"
});

console.log(arr[idx]); // color: "blue"

// find 활용
const element = arr.find((elm) => {
    return elm.color === "blue";
});

console.log(element); // color: "blue"


7. filter
배열 필터링. 배열에서 특정한 조건을 만족하는 요소들을 배열로 다시 반환(매개변수로 전달한 콜백함수가 true를 반환하는 모든 요소를 배열로 반환)

const arr = {
    {num: 1, color: "red"}
  , {num: 2, color: "black"}
  , {num: 3, color: "blue"}
  , {num: 4, color: "green"}
  , {num: 5, color: "blue"}
};

console.log(arr.filter((elm) => elm.color === "blue"));


8. slice
배열을 자름. 매개변수를 넣지 않으면 현재 배열 그대로 반환.
slice(begin, end) : begin에서 end - 1까지 잘라서 배열로 반환.

const arr = {
    {num: 1, color: "red"}
  , {num: 2, color: "black"}
  , {num: 3, color: "blue"}
  , {num: 4, color: "green"}
  , {num: 5, color: "blue"}
};

console.log(arr.slice(0, 2)); // [Object, Object] - {num: 1, color: "red"}, {num: 2, color: "black"}


9. concat
2개의 배열 붙이기.
배열1.concat(배열2) : 배열1 뒤로 배열2 붙여 하나의 배열로 반환.

const arr1 = {
    {num: 1, color: "red"}
  , {num: 2, color: "black"}
  , {num: 3, color: "blue"}
};

const arr2 = {
    {num: 4, color: "green"}
  , {num: 5, color: "blue"}
};

console.log(arr1.concat(arr2)); // [Object, Object, Object, Object, Object] - {num: 1, color: "red"}, {num: 2, color: "black"}, {num: 3, color: "blue"}, {num: 4, color: "green"}, {num: 5, color: "blue"}


10. sort
배열 사전 순(문자열 순)으로 정렬. 원본 배열을 정렬.

let chars = ["나", "다", "가"];
chars.sort();
console.log(chars);

let numbers = [0, 1, 3, 2, 10, 30, 20];
numbers.sort();
console.log(numbers); // [0, 1, 10, 2, 20, 3, 30] - 사전순 정렬

// 비교함수를 통한 숫자 정렬
let numbers = [0, 1, 3, 2, 10, 30, 20];
const compare = (a, b) => {
    // 1. 크다 - 뒤로 보냄
    if (a > b) {
        return 1; // -1 : 내림차순
    }
    // 2. 작다 - 앞으로 보냄
    if (a < b) {
        return -1; // 1 : 내림차순
    }
    // 3. 같다 - 자리 안 바꿈
    return 0;
};

numbers.sort(compare);
console.log(numbers); // [0, 1, 2, 3, 10, 20, 30] - 오름차순 정렬


비교함수를 제작하여 sort() 메서드에 전달하면 정수배열 뿐만 아니라 객체배열, 배열들의 배열, 함수들의 배열 등도 원하는대로 정렬할 수 있다.


11. join
배열 내 모든 요소들을 문자열 형태로 합침. 매개변수를 전달하면 해당 값이 구분자가 됨. 매개변수가 없다면 ,가 구분자.

const arr = ["송진성", "님", "안녕하세요", "또오셨군요"];

console.log(arr.join()); // 송진성,님,안녕하세요,또오셨군요
console.log(arr.join(" ")); // 송진성 님 안녕하세요 또오셨군요
console.log(arr.join("===")); // 송진성===님===안녕하세요===또오셨군요



참고강의 : https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%EB%A6%AC%EC%95%A1%ED%8A%B8#

 

한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지 - 인프런 | 강의

개념부터 독특한 프로젝트까지 함께 다뤄보며 자바스크립트와 리액트를 이 강의로 한 번에 끝내요. 학습은 짧게, 응용은 길게 17시간 분량의 All-in-one 강의!, 리액트, 한 강의로 끝장낼 수 있어요.

www.inflearn.com

'강의 실습 > 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지' 카테고리의 다른 글

삼항 연산자  (0) 2023.12.17
Truthy & Falsy  (0) 2023.12.13
반복문  (0) 2023.12.10
배열  (0) 2023.12.09
객체  (0) 2023.12.06

댓글