목차
1. foreach로 for문을 대신하기
2. for문의 기본기능
3. for문을 응용하기
forEach로 for문을 대신해보자
function name() {}
let newArr=[1,2,3]
for(let i=0; i<newArr.length; i++){
console.log(newArr[i]);
}
newArr.forEach(v => console.log(v));
//이게 forEach문을 사용한 문장
//뭐라는걸까.
}
forEach문의 형태
array.forEach( callback( currentvalue[, index[, array]])[, thisArg])
forEach 매개변수
callback : (필수) 각 요소에 대해 실행할 함수. 뒤에 따라오는 세가지 매개변수를 받는다
currentvalue : (필수) 처리할 현재 요소
index : (필수아님) 처리할 현재 요소의 인덱스
array : (필수아님) forEach()를 호출한 배열
thisArg : (필수아님) callback을 실행할 때 this로 사용할 값.
return : undefined 변수는 있지만 자료형이 정해지지않은 상태
forEach를 사용할 배열.forEach (각 요소에 실행할 함수 (처리할 요소 [index[forEach()를 호출한 배열]]) [ 각 요소에 행할 함수를 실행할때 this로 사용할 값) 인데 길다. 너무 길어. 어마무시하게 길어. 그러니까 필수적인것만 남겨놓아보자.
forEach를 사용할 배열.forEach (각 요소에 실행할 함수)
이렇게 정리하니 볼만하다. 이렇게 사용하면 뭘 할 수 있다는 걸까. 아 모르겠으면 돌려보면 되는거지. 컴퓨터의 연산능력은 나보다 똑똑하니 모르면 돌려보면 되는거임.
forEach문 : 연결된 배열의 원소만큼! 연결된 함수를 반복 수행!
let newArr=[1,2,3]
newArr.forEach(v => console.log(v));
//결과
//1
//2
//3
//newArr의 원소가 한번씩 출력되어 총 3번 실행되었다는 것을 알 수 있다.
forEach문 : 콜백() 안에 함수 넣기 -> forEach( 함수 )
//필수조건만 넣어서 만든 좀더 쉽게 보는 forEach
let newArr =[1,2,3]
newArr.forEach(ingoo);
//매개변수 자리에 인자로 ingoo 함수가 들어가있다.
//특징 : 콜백스택에 ingoo 함수를 담아놓기만할거라 ()가 뒤에 없다
//결과
//1
//1
//1
function ingoo(){ console.log(1)}
//결과를 보면 ingoo함수는 3번 호출 되었다.
//newArr배열의 원소 갯수만큼 반복되었다는 것을 알 수 있다.
forEach문 : 배열의 원소를 함수 안에 연결하기.
let newArr=[1,2,3]
newArr.forEach(ingoo);
function ingoo(value){
console.log(value)
}
//newArr의 원소값 대입
//꼭 value라고 안 적어도 됨! i나 v나 막 적어도 됨!
// 배열의 첫번째 인자값을 받을 수 있는 변수라고 기억하면 굳굳.
//그래서 function ingoo (v) { console.log(v) } <- 요 형태도 되는거.
//결과
//1
//2
//3
forEach문 : 함수명을 만들지 말고 연결해볼까?
//함수명 없이 함수 만들던 기억을 꺼내자!
obj ={
a: function (){ //함수명 없이 사용가능
console.log(1);
}
}
//이걸 응용해서!
let newArr=[1,2,3]
newArr.forEach(ingoo);
function ingoo(v){ //길어서 v라고 적겠음.
console.log(v)
}
newArr.forEach(function(v) { console.log(v) })
// (이름없는함수(인자값)){ 실행할 코드 내용 }
//newArr 배열을 연결할건데 말이야
//뭘 할거냐면 forEach를 할거거든.
//누구랑 할거냐면 이름이 없는데 일을 참 잘해- 그냥 흔한 function이지 뭐.
//newArr에서 v를 받아왔으니까 자재는 걱정 안해도 된다고 전해둬-
//오늘은- 받아온 v로 console.log(v)를 할거야
'프로그래밍 > javacscript' 카테고리의 다른 글
[220105] 메서드 (split, repeat, replace, repalceAll, includes, indexOf, substring, substr, concat, valueOf, slice, splice) (0) | 2022.01.07 |
---|---|
[220107] 깊은복사, 얕은복사, spread문 (0) | 2022.01.07 |
[220105] for문, 이중for문(구구단, 별짓기), 재귀함수, 다이나믹 프로그래밍(피보나치, 메모이제이션) (0) | 2022.01.05 |
[220104] 배열과 객체 / create:function(), 객체 안에 객체or배열 (0) | 2022.01.04 |
[220204] 배열 array, length, typeof, push (0) | 2022.01.04 |
댓글