map() 메소드는 원래 배열의 각 요소에 제공된 함수(callbackFn)를 적용하여 새 배열을 생성합니다. 원본 배열을 수정하지 않고 데이터를 변환하는 데 적합합니다.
array.map(callbackFn, thisArg)
const numbers = [1, 4, 9]; const roots = numbers.map((num) => Math.sqrt(num)); console.log(roots); // [1, 2, 3]
const kvArray = [ { key: 1, value: 10 }, { key: 2, value: 20 }, ]; const reformatted = kvArray.map(({ key, value }) => ({ [key]: value })); console.log(reformatted); // [{ 1: 10 }, { 2: 20 }]
// Common mistake: console.log(["1", "2", "3"].map(parseInt)); // [1, NaN, NaN] // Correct approach: console.log(["1", "2", "3"].map((str) => parseInt(str, 10))); // [1, 2, 3] // Alternative: console.log(["1", "2", "3"].map(Number)); // [1, 2, 3]
콜백에서 아무것도 반환하지 않으면 새 배열에 정의되지 않은 상태가 됩니다.
const numbers = [1, 2, 3, 4]; const result = numbers.map((num, index) => (index < 3 ? num : undefined)); console.log(result); // [1, 2, 3, undefined]
원치 않는 요소를 제거하려면 filter() 또는 flatMap()을 사용하세요.
변수 업데이트와 같은 부작용이 있는 작업에는 map()을 사용하지 마세요.
const cart = [5, 15, 25]; let total = 0; // Avoid this: const withTax = cart.map((cost) => { total += cost; return cost * 1.2; }); // Instead, use separate methods: const total = cart.reduce((sum, cost) => sum + cost, 0); const withTax = cart.map((cost) => cost * 1.2);
세 번째 인수(배열)를 사용하면 변환 중에 이웃에 액세스할 수 있습니다.
const numbers = [3, -1, 1, 4]; const averaged = numbers.map((num, idx, arr) => { const prev = arr[idx - 1] || 0; const next = arr[idx + 1] || 0; return (prev + num + next) / 3; }); console.log(averaged);
const elems = document.querySelectorAll("option:checked"); const values = Array.from(elems).map(({ value }) => value);
const products = [{ name: "phone" }]; const updated = products.map((p) => ({ ...p, price: 100 }));
배열을 효율적으로 변환할 때 map()을 사용하여 코드를 단순화하세요!
위 내용은 JavaScript 배열의 map() 메소드 이해: 간단한 안내서의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!