Javascript

[Javascript] forEach문, Array( ), fill( )

MinCoding 2020. 5. 29. 00:52

1. array.forEach( function(value, index, array ){    });

value는 해당 배열의 모든 요소

index는 해당 배열의 위치(순서)

array는 해당 배열 자체를 의미한다. 

 

* 배열의 요소만 사용하고 싶다면 매개변수를 value만 주면 되지만, array를 사용하고 싶다면, value와 index를 사용하지 않는다고 하더라도 매개변수안에 넣어주어야한다. index도 마찬가지로 매개변수로 array는 넣어줄 필요 없지만 value는 꼭 넣어줘야한다.

 

 

2. forEach문을 이용하여 배열 값 뿌려주기

Array(숫자)를 이용하여 빈배열을 만들 수 있다. 이때 만들어진 배열의 값은 empty를 가지게 된다. 
보통은 [ ] 를 이용해서 배열을 만들지만 숫자가 큰 배열을 만들때는 Array를 이용하는것이 좋다.

 

Array( )를 이용해 크기가 20인 배열을 만들어 주고,  forEach문을 이용해 1 ~ 20의 값들을 배열에 넣어주었다.

 

그런데 배열안에 값이 할당 되지 않았다. 

 

이유는 배열이 empty값을 가지기 때문이다

empty의 특징은 반복문을 할 수 없다는 것이다.

empty인 배열은 반복문으로 돌려주어도 주어진 반복 횟수 만큼 도는 것이 아니라 아예 한번도 돌지 않는다는 것이다.

내 코드로 보면 arr 배열이 empty를 가지기 때문에 forEach문을 실행조차 하지 못했던 것이다.

 

empty인걸 깜빡하고 왜 안되는지 한참 찾았다 강의에서 알려줬던 내용이였는데 

내가 집중을 안했나보다ㅋㅋ (급 자아성찰)

 

해결하기 위해서는 fill() 를 사용하면 된다!!

fill() 메서드는 배열의 모든 요소를 정적인 값 하나로 채워준다. 

 

forEach문 이용해 1~20까지의 값을 줄 것이므로  fill()에 매개변수를 주지않고 사용하였다.  

매개변수를 주지않았기 때문에 모든 요소의 값이 undefined로 채워졌다. 

이제 다시 forEach문을 이용해 배열 값을 넣어보자! 

 

반복문이 제대로 동작하고 배열 값을 잘 넣어준것을 확인하였다!