프로그래머스 0단계: 정답률 50% - 안전지대

안녕하세요.
오늘은 오랜만에 정답률 50%문제 안전지대를 풀어보겠습니다.

function solution(board) {
    let answer = 0;
    for(let j = 0; j < board.length ; j++){
        board[j].map((x,i) => {
            if(x === 1){
                if(i>0){
                    board[j][i-1] === 1? board[j][i-1] = 1: board[j][i-1] = 2;
                    if(j>0){
                        board[j-1][i-1] === 1? board[j-1][i-1] = 1: board[j-1][i-1] = 2;
                    }
                    if(j< board.length-1){
                        board[j+1][i-1] === 1? board[j+1][i-1] = 1: board[j+1][i-1] = 2;
                    } 
                }
                if(i< board.length-1){
                    board[j][i+1] === 1? board[j][i+1] = 1: board[j][i+1] = 2;
                    if(j< board.length-1){
                        board[j+1][i+1] === 1? board[j+1][i+1] = 1: board[j+1][i+1] = 2;
                    }
                    if(j>0){
                        board[j-1][i+1] === 1? board[j-1][i+1] = 1: board[j-1][i+1] = 2;
                    }
                }
                if(j>0){
                    board[j-1][i] === 1? board[j-1][i] = 1: board[j-1][i] = 2;
                }
                if(j< board.length-1){
                    board[j+1][i] === 1? board[j+1][i] = 1: board[j+1][i] = 2;
                } 
            }
        })
    }
    board.map(x => x.map(y=>y === 0? answer++ : answer))
    return answer 
}

제가 문제를 푼 방법은 1주변의 공간을 2로 모두 변경해준뒤 남은 0의 숫자를 전부 세는 방법이었습니다.