JavaScript/0. 보충 강의

[인프런] 배열 내장 함수

pancakemaker 2022. 4. 7. 18:40

1. forEach(), map()

///////////////////////////////////////////////////////
//배열 요소 출력하기
//1. for 이용
const arr1 = [1, 2, 3, 4];

for(let i=0; i<arr.length; i++) {
    console.log(arr[i]);
}

//2. forEach 이용
const arr2 = [1, 2, 3, 4];
arr2.forEach(function (elm) { 
    console.log(elm) 
});
//화살표 함수
arr2.forEach((elm) => console.log(elm));


///////////////////////////////////////////////////////
//배열 요소에 *2씩 해보자
const arr3 = [1, 2, 3, 4];
const newArr1 = [];  //*2 한 값을 넣을 새로운 배열

//forEach 이용
arr3.forEach(function(elm) {
    newArr1.push(elm*2);     //arr3 배열 내 요소 하나하나(elm)에 *2를 곱한 후 newArr 배열에 넣기(push)
})

console.log(newArr1);

//map 이용
const arr4 = [1, 2, 3, 4];
const newArr2 = arr4.map((elm) => {
    return elm*2;
})

console.log(newArr2);

 

2. includes()

//////////////////////////////////////////////////////////
//배열에 주어진 값이 존재하는지 찾기
//1. forEach() 이용
const arr = [1, 2, 3, 4];

let number = 3;
arr.forEach(elm => {
    if (elm === number) {       //배열에 요소가 number=3과 같으면
        console.log(true);          //true
    }
})

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

 

3. indexOf(), findIndex(), find()

//////////////////////////////////////////////////////////
//배열에 주어진 값이 존재하면 index를 출력
//1. indexOf() 이용
const arr = [1, 2, 3, 4];

let number = 3;

console.log(arr.indexOf(number));   //2 출력 (해당 값이 없을 경우 -1 출력)

//2. 객체 배열에서 findIndex() 이용
const arr = [
    { color: "red"},
    { color: "black"},
    { color: "blue"},
    { color: "green"}
];

console.log(arr.findIndex(function (elm) {
    return elm.color === "green";       //3 출력
}));

//화살표 함수로 변경 (function 대신 => 넣고 {return}; 생략 가능) -> 제네릭!
console.log(arr.findIndex((elm) => elm.color === "green"));     //3 출력

//3. 객체 배열에서 find() 이용 -> index가 아니라 그 요소 자체를 출력
const element = arr.find((elm) => elm.color === "blue");
console.log(element);       //{color: 'blue'} 출력


4. filter()

//////////////////////////////////////////////////////////
//배열 필터링
const arr = [
    { num: 1, color: "red"},
    { num: 2, color: "black"},
    { num: 3, color: "blue"},
    { num: 4, color: "green"},
    { num: 5, color: "blue"}
];

//1. filter() 이용 -> color가 blue인 애들만 가져오기
console.log(arr.filter((elm) => elm.color === "blue"));    //{ num: 3, color: "blue"}, { num: 5, color: "blue"} 출력

 

5. slice(), concat()

//////////////////////////////////////////////////////////
//배열 자르고 붙이기
const arr1 = [
    { num: 1, color: "red"},
    { num: 2, color: "black"},
    { num: 3, color: "blue"},
];

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

//1. slice() 이용 - 자르기
console.log(arr1.slice(1, 3));   //{ num: 2, color: "black"}, { num: 3, color: "blue"} 출력 : 1번 배열부터 3번 전(2번) 배열까지만 출력

//2. concat() 이용 - arr2에 arr1을 붙이기
console.log(arr2.concat(arr1));

 

6. sort()

//////////////////////////////////////////////////////////
//문자 배열 정렬하기
let chars = ["나", "다", "가"];

//1. sort() 사용 -> 원본 배열을 사전 순서대로 정렬
chars.sort();
console.log(chars);

//숫자 배열 오름차순으로 정렬하기 -> sort()는 사전순으로 정렬되므로 if 조건문을 걸어주는 비교함수를 생성해야 함
//1. sort() 사용
let nums = [0, 1, 6, 4, 10, 8, 7, 4];

const compare = (a, b) => {
    if (a>b) {          //크다
        return 1;
    } else if (a<b) {   //작다
        return -1;
    } else {            //같다
        return  0;
    }
};
nums.sort(compare);
console.log(nums);      //[0, 1, 4, 4, 6, 7, 8, 10]

 

7. join()

//////////////////////////////////////////////////////////
//배열을 문자열로 합쳐서 출력하기
const arr = ["전유진", "님", "안녕하세요", "반갑습니다"];

console.log(arr.join(" "));     //전유진 님 안녕하세요 반갑습니다