Javascript Cookbook

배열의 모든 원소에 함수를 적용하고 새로운 배열 반환하기

문제

10진수 숫자의 배열을 같은 크기의 16진수 값이 있는 새로운 배열로 변환하고 싶다

해결

Array 객체의 map 메서드를 사용하면 원본 배열에서 새로운 배열을 만들 수 있다. 새로운 배열의 원소는 map 메서드에 전달된 콜백 함수를 원본 배열의 원소에 적용하여 구한다.

//10진수를 16진수로 변환하는 함수
function convertToHex(element,index,array){
    return element.toString(16);
}

var decArray = new Array(23,255,122,5,16,99);

var hexArray = decArray.map(convertToHex);
document.write(hexArray);   //17,ff,a,5,10,63

설명

map 메서드는 각 배열의 원소에 콜백 함수를 적용한다. 원본 배열을 수정한 새로운 배열을 결과로 반환한다. map을 사용할 때는 값을 반드시 반환해야 한다.

IE8을 제외한 IE9와 대부분의 최신 브라우저에서 지원한다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map