SOCO

배열응용: forEach, map, Array().fill() 본문

프론트/java script 기초지식

배열응용: forEach, map, Array().fill()

ssooda 2021. 6. 11. 15:48

1. 배열에 대한 반목문 : 배열명.forEach( ( ) => { })

배열의 요소를 순차적으로 훑으면서 함수를 실행함

배열명.forEach((요소, 인덱스) => { })

const array = [3,1,4,6]
array.forEach((element, index) => {
	console.log('인덱스 : '+index +' 숫자 : ' +element)
    });
//인덱스 : 0 숫자 : 3
//인덱스 : 1 숫자 : 1
//인덱스 : 2 숫자 : 4
//인덱스 : 3 숫자 : 6

응용 예시

const answer=[3,1,4,6]; //정답은 3,1,4,6
const value = '3214' //입력한 값은 3214
let strike = 0; //처음 시작은 스트라이크 0
let ball = 0;   //           볼 0
answer.forEach( (element, i) => {//element는 배열의 각 요소, i는 배열의 각 인덱스임
	const index = value.indexOf(element) //index는 입력한 값(value)에 element가 몇번째에 위치하는지
    if(index>-1){//해당 숫자가 있다면
    	if(index===i){//게다가 위치까지 같다면
        	strike +=1 //스트라이크 +1
        } else{ //위치는 다르다면
        	ball +=1 //볼 +1
        }
     }
  }

 

2. 배열명.map( ( )=> { })

map은 forEach의 역할도 하면서 return에 적혀져 있는대로 "새로운" 배열을 만듦

const array = [1,2,3,4];
array.map((element, index) =>{
	return element*2;
    })
//[2,4,6,8]

기존배열은 수정되지 않고 새로운 배열이 생기는 것임

 

3.빈 배열 만들기 : Array().fill()

const array = Array(3).fill()
console.log(array)//[undefined, undefined, undefined]