Baseline Widely available
Array
ì¸ì¤í´ì¤ì map()
ë©ìëë í¸ì¶í ë°°ì´ì 모ë ììì 주ì´ì§ í¨ì를 í¸ì¶í ê²°ê³¼ë¡ ì±ì´ ìë¡ì´ ë°°ì´ì ìì±í©ëë¤.
const array1 = [1, 4, 9, 16];
// Pass a function to map
const map1 = array1.map((x) => x * 2);
console.log(map1);
// Expected output: Array [2, 8, 18, 32]
구문
map(callbackFn)
map(callbackFn, thisArg)
매ê°ë³ì
callback
ë°°ì´ì ê° ììì ëí´ ì¤íí í¨ìì ëë¤. ë°í ê°ì ì ë°°ì´ìì ë¨ì¼ ììë¡ ì¶ê°ë©ëë¤. ì´ í¨ìë ë¤ì ì¸ìë¡ í¸ì¶í©ëë¤. ë¤ì ì¸ ê°ì§ ì¸ì를 ê°ì§ëë¤.
currentValue
ë°°ì´ ë´ìì ì²ë¦¬í íì¬ ìì.
index
ë°°ì´ ë´ìì ì²ë¦¬í íì¬ ììì ì¸ë±ì¤.
array
map()
ì í¸ì¶í ë°°ì´.
thisArg
Optional
callback
ì ì¤íí ë this
ë¡ ì¬ì©ëë ê°. ìí ë©ìë를 ì°¸ê³ íì기 ë°ëëë¤.
ë°°ì´ì ê° ììì ëí´ ì¤íí callback
ì 결과를 모ì ìë¡ì´ ë°°ì´.
map()
ë©ìëë ìí ë©ìëì
ëë¤. ì´ ë©ìëë 주ì´ì§ callbackFn
í¨ì를 ë°°ì´ì ê°ê°ì ìì ë¹ íë² ì© í¸ì¶íì¬ ê·¸ ê²°ê³¼ë¡ ìë¡ì´ ë°°ì´ì ìì±í©ëë¤. ì´ë¬í ë©ìëê° ë³´í¸ì ì¼ë¡ ëìíë ë°©ë²ì ìê³ ì¶ì¼ìë©´ ìí ë©ìë를 ì°¸ê³ íì기 ë°ëëë¤.
callback
í¨ìë í¸ì¶ë ë ëì ììì ê°, ê·¸ ììì ì¸ë±ì¤, ê·¸ë¦¬ê³ map
ì í¸ì¶í ì본 ë°°ì´ 3ê°ì ì¸ì를 ì ë¬ë°ìµëë¤. callbackFn
ì ê°ì´ í ë¹ë ë°°ì´ ì¸ë±ì¤ììë§ í¸ì¶ë©ëë¤. í¬ì ë°°ì´ì ë¹ ì¬ë¡¯ììë í¸ì¶ëì§ ììµëë¤.
map()
ë©ìëë ë²ì© ë°°ì´ ë©ìëì
ëë¤. ì´ ë©ìëë ì¤ì§ this
ê°ì´ length
ìì±ê³¼ ì ì í¤ê° ìë ìì±ì íìë¡ í©ëë¤.
map
ì ìë¡ì´ ë°°ì´ì ë§ë¤ê¸° ë문ì, ë°íë ë°°ì´ì ì¬ì©íì§ ìê³ í¸ì¶íë ê²ì ìí° í¨í´ì
ëë¤. ì´ ê²½ì°ìë forEach
í¹ì for...of
를 ì¬ì©íì기 ë°ëëë¤.
ë¤ì ì½ëë ì«ì ë°°ì´ì ë°ìì ë°°ì´ ìì ê° ì«ìì ì ê³±ê·¼ì´ ë¤ì´ìë ìë¡ì´ ë°°ì´ì ë§ëëë¤.
const numbers = [1, 4, 9];
const roots = numbers.map((num) => Math.sqrt(num));
// roots ë ì´ì [1, 2, 3] ì
ëë¤.
// numbers ë ì¬ì í [1, 4, 9] ì
ëë¤.
map
ì íì©í´ ë°°ì´ ì ê°ì²´ë¥¼ ì¬êµ¬ì±í기
ë¤ì ì½ëë ê°ì²´ì ë°°ì´ì ë°ì ê° ê°ì²´ë¥¼ ë¤ë¥¸ ííë¡ ì¬êµ¬ì±í´ ìë¡ì´ ë°°ì´ì ë§ëëë¤.
const kvArray = [
{ key: 1, value: 10 },
{ key: 2, value: 20 },
{ key: 3, value: 30 },
];
const reformattedArray = kvArray.map(({ key, value }) => ({ [key]: value }));
console.log(reformattedArray); // [{ 1: 10 }, { 2: 20 }, { 3: 30 }]
console.log(kvArray);
// [
// { key: 1, value: 10 },
// { key: 2, value: 20 },
// { key: 3, value: 30 }
// ]
map()ê³¼ í¨ê» parseInt() ì¬ì©í기
ì½ë°±ì íëì ì¸ì(ìí ì¤ì¸ ìì)ì í¨ê» ì¬ì©íë ê²ì´ ì¼ë°ì ì ëë¤. í¹ì í¨ìë ì¶ê°ì ì¸ ì íì ì¸ì를 ì¬ì©íëë¼ë íëì ì¸ìì í¨ê» ì¬ì©íë ê²ì´ ì¼ë°ì ì ëë¤. ì´ë¬í ìµê´ì í¼ëì¤ë¬ì´ íëì¼ë¡ ì´ì´ì§ ì ììµëë¤. ìë ì½ë를 ê³ ë ¤í´ ë³´ì¸ì.
["1", "2", "3"].map(parseInt);
ëêµ°ê°ë [1, 2, 3]
ì 기ëí ì ìì§ë§, ì¤ì ê²°ê³¼ë [1, NaN, NaN]
ì
ëë¤.
parseInt
ë ì¢
ì¢
íëì ì¸ìì í¨ê» ì¬ì©ëì§ë§, ë ê°ì ì¸ì를 ë°ìµëë¤. 첫 ë²ì§¸ ì¸ìë ííìì´ê³ ë ë²ì§¸ ì¸ìë ì½ë°± í¨ìì ì§ìì
ëë¤. Array.prototype.map
ì ìì, ì¸ë±ì¤, ë°°ì´ì ì¸ ê°ì§ ì¸ì를 ì ë¬í©ëë¤. ì¸ ë²ì§¸ ì¸ìë parseInt
ì ìí´ ë¬´ìëì§ë§, ë ë²ì§¸ ì¸ìë 무ìëì§ ììµëë¤. ì´ê²ì´ í¼ëì ìì¸ì¼ ì ììµëë¤.
ë¤ìì ìí ë¨ê³ì ê°ê²°í ìì ëë¤.
/* 첫 ë²ì§¸ ìí (ì¸ë±ì¤ë 0ì
ëë¤): */ parseInt("1", 0); // 1
/* ë ë²ì§¸ ìí (ì¸ë±ì¤ë 1ì
ëë¤): */ parseInt("2", 1); // NaN
/* ì¸ ë²ì§¸ ìí (ì¸ë±ì¤ë 2ì
ëë¤): */ parseInt("3", 2); // NaN
ì´ë¥¼ í´ê²°í기 ìí´ìë íëì ì¸ì를 ë°ë ë ë¤ë¥¸ í¨ì를 ì ìí´ì¼ í©ëë¤.
["1", "2", "3"].map((str) => parseInt(str, 10)); // [1, 2, 3]
ì¤ì§ íëì ì¸ì를 ë°ë Number
í¨ì를 ì¬ì©í ì ììµëë¤.
["1", "2", "3"].map(Number); // [1, 2, 3]
// parseInt()ìë ë¤ë¥´ê² Number()ë ë¶ëìì í¹ì (í´ê²°ë) ì§ì í기ë²ì ë°íí©ëë¤.
["1.1", "2.2e2", "3e300"].map(Number); // [1.1, 220, 3e+300]
// ëì¡°ì ì¼ë¡ ë§ì½ ì ë°°ì´ì parseInt()를 ì¬ì©íì ê²½ì°ì
ëë¤
["1.1", "2.2e2", "3e300"].map((str) => parseInt(str, 10)); // [1, 2, 3]
ë³´ë¤ ìì¸í ë ¼ìë Allen Wirfs-Brockì JavaScript ì íì ì¸ì ìí를 ë³´ì기 ë°ëëë¤.
undefined를 í¬í¨íë 매íë ë°°ì´undefined
ëë ì무ê²ë ë°íëì§ ìì¼ë©´ ê²°ê³¼ ë°°ì´ì undefined
ê° í¬í¨ë©ëë¤. ëì ìì를 ìì íë ¤ë©´ filter()
ë©ìë를 ì²´ì¸ì¼ë¡ ì°ê²°íê±°ë flatMap()
ë©ìë를 ì¬ì©íì¬ ë¹ ë°°ì´ì ë°ííì¬ ìì 를 ëíë
ëë¤.
const numbers = [1, 2, 3, 4];
const filteredNumbers = numbers.map((num, index) => {
if (index < 3) {
return num;
}
});
// ì¸ë±ì¤ê° 0ë¶í° ììí기 ë문ì filterNumberë 1, 2, 3ê³¼ undefined ì
ëë¤.
// filteredNumbersë [1, 2, 3, undefined]ì
ëë¤
// numbersë ì¬ì í [1, 2, 3, 4]ì
ëë¤
ë¶ìì©ì´ ìë 매í
ì½ë°±ì ë¶ìì©ì´ ììµëë¤.
const cart = [5, 15, 25];
let total = 0;
const withTax = cart.map((cost) => {
total += cost;
return cost * 1.2;
});
console.log(withTax); // [6, 18, 30]
console.log(total); // 45
ë³µì¬ ë©ìëë ìì í¨ìì í¨ê» ì¬ì©íë ê²ì´ ê°ì¥ ì¢ê¸° ë문ì ê¶ì¥ëì§ ììµëë¤. ì´ ê²½ì° ë°°ì´ì ë ë² ë°ë³µíëë¡ ì íí ì ììµëë¤.
const cart = [5, 15, 25];
const total = cart.reduce((acc, cost) => acc + cost, 0);
const withTax = cart.map((cost) => cost * 1.2);
ëëë¡ ì´ í¨í´ì ê·¹ë¨ì ì¼ë¡ ë³íë©° map()
ê° íë ì ì¼í ì ì©í ì¼ì ë¶ìì©ì ì¼ì¼í¤ë ê²ì
ëë¤.
const products = [
{ name: "sports car" },
{ name: "laptop" },
{ name: "phone" },
];
products.map((product) => {
product.price = 100;
});
ììì ì¸ê¸íë¯ì´, ì´ë ìí° í¨í´ì
ëë¤. map()
ì ë°í ê°ì ì¬ì©íì§ ìëë¤ë©´ forEach()
í¹ì for...of
ë°ë³µë¬¸ì ëì ì¬ì©íì기 ë°ëëë¤.
products.forEach((product) => {
product.price = 100;
});
í¹ì ëì ìë¡ì´ ë°°ì´ì ìì±í ì ììµëë¤.
const productsWithPrice = products.map((product) => {
return { ...product, price: 100 };
});
callbackFnì ì¸ ë²ì§¸ ì¸ì ì¬ì©í기
array
ì¸ìë ë°°ì´ì 참조íë 기존 ë³ìê° ìë ê²½ì°, í¹í ë°°ì´ì ë¤ë¥¸ ììì ì ê·¼íê³ ì¶ì ë ì ì©í©ëë¤. ë¤ì ìì ììë 먼ì filter()
를 ì¬ì©íì¬ ìì ê°ì ì¶ì¶í ë¤ì map()
ì ì¬ì©íì¬ ê° ììê° ì´ìê³¼ ìì ì íê· ì¸ ì ë°°ì´ì ë§ëëë¤.
const numbers = [3, -1, 1, 4, 1, 5, 9, 2, 6];
const averaged = numbers
.filter((num) => num > 0)
.map((num, idx, arr) => {
// arr ìì ìì´, ì¤ê° ë°°ì´ì ë³ìë¡ ì ì¥íì§ ìê³ ì¤ê° ë°°ì´ì
// ì½ê² ì ê·¼í ì ìë ë°©ë²ì´ ììµëë¤.
const prev = arr[idx - 1];
const next = arr[idx + 1];
let count = 1;
let total = num;
if (prev !== undefined) {
count++;
total += prev;
}
if (next !== undefined) {
count++;
total += next;
}
const average = total / count;
// ììì ë ì리를 ì ì§í©ëë¤
return Math.round(average * 100) / 100;
});
console.log(averaged); // [2, 2.67, 2, 3.33, 5, 5.33, 5.67, 4]
array
ì¸ìë ìì± ì¤ì¸ ë°°ì´ì´ ìëëë¤. ì½ë°± í¨ììì ìì± ì¤ì¸ ë°°ì´ì ì ê·¼í ë°©ë²ì´ ììµëë¤.
í¬ì ë°°ì´ì map()
ì´íìë ê·¸ëë¡ í¬ì ë°°ì´ë¡ ë¨ìµëë¤. ë¹ ì¬ë¡¯ì ì¸ë±ì¤ë ë°íë ë°°ì´ììë ì¬ì í ë¹ ì¬ë¡¯ì¼ë¡ ì¡´ì¬íë©° ì½ë°± í¨ìë í´ë¹ ë¹ ì¬ë¡¯ììë í¸ì¶ëì§ ììµëë¤.
console.log(
[1, , 3].map((x, index) => {
console.log(`Visit ${index}`);
return x * 2;
}),
);
// 0 방문
// 2 방문
// [2, empty, 6]
ë°°ì´ì´ ìë ê°ì²´ìì map() í¸ì¶í기
map()
ë©ìëë this
ì length
ìì±ì ì½ì´ì ììê° ìë length
ë³´ë¤ ìì ì ì í¤ë¥¼ ê°ì§ ê°ê°ì ìì±ì ì ê·¼í©ëë¤.
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 5, // lengthê° 3ì´ê¸° ë문ì map()ìì 무ìí©ëë¤
};
console.log(Array.prototype.map.call(arrayLike, (x) => x ** 2));
// [ 4, 9, 16 ]
ì´ ìì ë querySelectorAll
ìì ìì§í ê°ì²´ 컬ë ì
ì ìííë ë°©ë²ì ë³´ì¬ì¤ëë¤. ì´ë querySelectorAll
ì´ ê°ì²´ 컬ë ì
ì¸ NodeList
를 ë°íí기 ë문ì
ëë¤. ì´ ê²½ì° ìë ì½ëì ê°ì´ ì íí 모ë option
ê°ì íë©´ì ë°íí©ëë¤.
const elems = document.querySelectorAll("select option:checked");
const values = Array.prototype.map.call(elems, ({ value }) => value);
elems
를 ê°ì²´ë¡ ë³íí기 ìí´ Array.from()
를 ì¬ì©í ì ììµëë¤. ê·¸ë¦¬ê³ ëì map()
ë©ìëë¡ ì ê·¼í©ëë¤.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4