MDN -Array.prototype.forEach()
내가 너무 반복문을 써서,, 배열 메소드들을 좀 정리해서 공부해볼까 한다.
반복문이 익숙해서 쓰기 편한데 사실 쓸데없는 연산을 많이 해서 그런 부분을 줄여보려면
다양한 메소드를 많이 써보고 익혀야할 것 같다고 생각이 들었다.
(하지만 늘 생각만 하고 잘 안 한다.. 하지만 앞으로는 진짜 할 것이다!!🔥🔥)
forEach() 메서드는 주어진 함수를 배열 요소 각각에 대해 실행한다.
const array1 = ['a', 'b', 'c'];
array1.forEach(element => console.log(element));
// expected output: "a"
// expected output: "b"
// expected output: "c"
화살표 함수에도 익숙해져야겠다 흑흑..
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg]);
반환 값은 undifined
다.
궁금한 거
최초 배열의 길이가 5였는데
하나를 추가해서 6개가 되었다가
마지막 인덱스에 도달하기 전에 앞의 인덱스가 삭제되면
새롭게 추가된 요소가 마지막 인덱스로 가는데 얘를 방문할까?
var arr = [1,2,3,4,5]
function check(element){
console.log(element);
console.log(this);
if(element===2){
this.push(6)
}else if(element===3){
this.splice(3,1)
}
}
arr.forEach(check, arr); //this에 자기자신을 바인딩해줬다. 안 하면 window로 본다.
최조배열의 범위는 index 0부터 4로 5개
forEach가 돌고 있는 중간에 배열이 바뀐다.
중간에 6개로 늘어났다가 다시 5개로 줄어든다.
범위는 정해져 있으니까 새로 생긴 element가 forEach가 끝나기 전에
범위 안에 들어오면 forEach가 그 element도 방문한다.
주의 할 만한 경우
중간에 배열이 수정되면 forEach()가 요소를 건너뛰는 경우가 생길 수 있다.
dd