이전에 array와 array method에 대해 간단하게 정리한 적이 있었습니다.
👉🏻 https://velog.io/@remon/3주차-자바스크립트의-배열과-반복문
오늘은 array의 반복문에 대해 정리해보려고 합니다.
📍 fruits
라는 배열을 하나 만들어봅시다.
const fruits = ["사과", "바나나", "딸기"]
for (let i = 0; i<arrs.length; i++) {
console.log(arr[i]);
}
for(변수 시작점; 조건식(도착점); 증감식) {
조건식이 true일 때 실행되는 구현부
}
for()
괄호 안을 해석하자면
- index는 0부터 시작
- index가
fruits
배열의 길이(3)보다 작으면- index에 1을 더해라
배열을 순회합니다. fruits
배열의 item
들을 하나씩 순회하여 {}
안의 함수를 출력합니다.
for in
과 헷깔리지 않게 주의합니다.Array.forEach
는 for
대신 사용하는 반복문입니다.
배열안에 들어있는 값들마다 내가 전달한 함수(callback
함수)를 실행합니다.
callback 함수란, 인자로 전달되는 함수라고 생각하면 됩니다.
arr.forEach( function(item, index, array){} )
1번째 인자는 배열의 각각의 아이템들이고,
2번째 인자는 배열의 인덱스이고,
3번째 인자는 배열 그 자체를 출력해줍니다.
이름이 없는 function() = 익명함수(Anonymous function)는 arrow function을 사용할 수 있습니다.
위의 코드를 arrow function으로 수정해봅시다.
(2번째 인자인 index와 3번째 인자인 array
는 사용할 필요없어서 뺐습니다. )
fruits.forEach((fruit) => {
console.log(fruit);
})
한줄인 경우 {}
생략 가능합니다.
fruits.forEach((fruit) => console.log(fruit));
✅ forEach
함수 자체가 return 하는것은 아무것도 없습니다. 그래서 forEach
로 전달되는 callback
함수에서도 return하는 것이 없습니다.
현업에서 굉장히 자주 쓰인다고 합니다.
Array.map()
는 배열을 반복해주는데, callback
함수에서 return한 값으로 매(each) 요소를 수정해 줍니다.
map
메서드의 return 값은 수정된 값으로 다시 생성된 배열입니다.
parameter
로 전달합니다.callback
함수에서 array의 요소를 인자(fruit
)로 받습니다.가장 큰 차이점은 return값 입니다.
동일한 조건의 반복문을 사용하더라도 return 값이 없는 forEach
는 undefined
가 나오고,map
은 return값으로 새로운 배열을 반환해줍니다.
예를들어 ceo의 name만 가져와서 배열로 만들고 싶을 때 사용합니다.
API를 받아서 사용할 때 JSON파일을 받으면 objcet형식으로 되어있다. 이럴때 내가 원하는 데이터만 가지고 오고 싶을 때 사용합니다.
예를들어 숫자로 구성된 배열을 인자로 받는 moreThan100
이라는 함수가 있습니다. 이 함수의 조건은
해서 새로운 배열을 return 해줘야합니다.
조건에 맞게 return된 값이 새로운 배열에 담겨서 나오는걸 볼 수 있습니다.
조건에 대해 true
인 값만 새로운 배열로 반환됩니다.