문자열 배열을 숫자로 바꾸려고 map에 parseInt를 넘겼습니다. 간결하게 쓴다고 이렇게 했는데요.
const result = ["1", "7", "11"].map(parseInt);
console.log(result);
// [1, NaN, 3]
1은 그대로 1이 나오는데 7은 갑자기 NaN이고, "11"은 11이 아니라 3이 나옵니다. 값들이 전혀 예측이 안 돼요. 특히 마지막에 11이 3으로 바뀌는 건 대체 어디서 나온 숫자인지 모르겠습니다.
map이 parseInt한테 뭔가 값을 추가로 넘기는 것 같은데 정확히 어떤 동작인지 이해되지 않습니다. 왜 이런 값이 나오는지, 그리고 안전하게 숫자로 변환하려면 어떻게 하는 게 맞는지 궁금합니다.