Baseline Widely available
map()
㯠Array
ã¤ã³ã¹ã¿ã³ã¹ã®ã¡ã½ããã§ãä¸ãããã颿°ãé
åã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦å¼ã³åºãããã®çµæãããªãæ°ããé
åãçæãã¾ãã
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)
弿°
callbackFn
é åã®ããããã®è¦ç´ ã«å¯¾ãã¦å®è¡ãã颿°ããã®è¿å¤ã¯ãæ°ããé åã®åä¸ã®è¦ç´ ã¨ãã¦è¿½å ããã¾ãããã®é¢æ°ã¯ã以ä¸ã®å¼æ°ã§å¼ã³åºããã¾ãã
element
é åå ã§ç¾å¨å¦çä¸ã®è¦ç´ ã§ãã
index
ç¾å¨å¦çä¸ã®è¦ç´ ã®é åå ã«ãããæ·»åã§ãã
array
map()
ãå¼ã³åºãããé
åã§ãã
thisArg
çç¥å¯
callbackFn
ãå®è¡ããã¨ãã« this
ã¨ãã¦ä½¿ãå¤ã§ããå復å¦çã¡ã½ãããåç
§ãã¦ãã ããã
ä¸ãããã颿°ãé åã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦å¼ã³åºãããã®çµæãããªãæ°ããé åã§ãã
解説map()
ã¡ã½ããã¯å復å¦çã¡ã½ããã§ããæå®ããã颿° callbackFn
ãé
åã«å«ã¾ããåè¦ç´ ã«å¯¾ãã¦ä¸åº¦ãã¤å¼ã³åºãããã®çµæããæ°ããé
åãæ§ç¯ãã¾ãã
callbackFn
ã¯å¤ãå²ãå½ã¦ããã¦ããé
åã¤ã³ããã¯ã¹ã«å¯¾ãã¦ã®ã¿å¼ã³åºããã¾ããçé
åã§ç©ºã®ã¹ãããã«å¯¾ãã¦ã¯å¼ã³åºããã¾ããã
map()
ã¡ã½ããã¯ã³ãã¼ã¡ã½ããã§ãããã㯠this
ã夿´ãã¾ããããããã callbackFn
ã«æå®ããã颿°ã¯å¤æ´ãããã¨ãããã¾ãããã ããé
åã®é·ã㯠callbackFn
ãæåã«å¼ã³åºãåã«ä¿åããããã¨ã«æ³¨æãã¦ãã ããããããã£ã¦ã
callbackFn
㯠map()
ã®å¼ã³åºããå§ããã¨ãã®é
åã®é·ããè¶
ãã¦è¿½å ãããè¦ç´ ã«ã¯ã¢ã¯ã»ã¹ãã¾ãããcallbackFn
ãå度å¼ã³åºããããã¨ã¯ããã¾ãããcallbackFn
ã«ãã£ã¦å¤æ´ãããå ´åã callbackFn
ã«æ¸¡ãããå¤ã¯ãã®è¦ç´ ãåå¾ãããæç¹ã®å¤ã«ãªãã¾ããåé¤ãããè¦ç´ ã¯å¦çããã¾ãããè¦å: åé ã§èª¬æãããããªãåç §ä¸ã®é åã®åæé²è¡ã§ã®å¤æ´ã¯ï¼ç¹æ®ãªå ´åãé¤ãã¦ï¼æ®éã¯é¿ããã¹ãã§ããå¤ãã®å ´åãçè§£ãã«ããã³ã¼ãã«ãªãã¾ãã
map()
ã¡ã½ããã¯æ±ç¨çã§ãããã㯠this
å¤ã« length
ããããã£ã¨æ´æ°ãã¼ã®ããããã£ããããã¨ã ããæå¾
ãã¾ãã
map
ã¯æ°ããé
åã使ããã®ã§ãè¿ãããé
åã使ããªãå ´åã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 }
// ]
弿°ãå«ã颿°ã使ç¨ãã¦æ°å¤é
åã対å¿ä»ãã
次ã®ã³ã¼ãã¯ã1 ã¤ã®å¼æ°ãå¿
è¦ã¨ãã颿°ã使ç¨ããã¨ãã« map
ãã©ã®ããã«åä½ãããã示ãã¦ãã¾ãã弿°ã¯å
ã®é
åãéãã map
ã«ã¼ãã¨ãã¦ãé
åã®åè¦ç´ ã«èªåçã«å²ãå½ã¦ããã¾ãã
const numbers = [1, 4, 9];
const doubles = numbers.map((num) => num * 2);
console.log(doubles); // [2, 8, 18]
console.log(numbers); // [1, 4, 9]
å¯ä½ç¨ã®ãã対å¿ä»ã
ã³ã¼ã«ããã¯ã«ã¯å¯ä½ç¨ãããã¾ãã
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
ãªããªããã³ãã¼ã¡ã½ããã¯ç´ç²é¢æ°ã¨ã¨ãã«ä½¿ç¨ããã®ãæé©ã ããã§ãããã®å ´åãé åã 2 åå復å¦çãããã¨ãé¸ã¹ã¾ãã
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 };
});
é
å以å¤ã®ãªãã¸ã§ã¯ãã«å¯¾ãã 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 ]
map() ãæ±ç¨çã« NodeList ã§ä½¿ç¨
ãã®ä¾ã§ã¯ã querySelectorAll
ã«ãã£ã¦åéããããªãã¸ã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ãå復å¦çããæ¹æ³ã示ãã¾ãããã㯠querySelectorAll
ã NodeList
ï¼ãªãã¸ã§ã¯ãã®éåï¼ãè¿ãããã§ãã
ãã®å ´åãç»é¢ã«é¸æããã¦ãããã¹ã¦ã® option
ã®å¤ãè¿ãã¾ãã
const elems = document.querySelectorAll("select option:checked");
const values = Array.prototype.map.call(elems, ({ value }) => value);
ãã£ã¨ç°¡åãªæ¹æ³ã¯ Array.from()
ã¡ã½ããã使ç¨ãããã¨ã§ãã
çé
å㯠map()
ã®å¾ãçé
åã®ã¾ã¾ã§ãã空ã®ã¹ãããã®ã¤ã³ããã¯ã¹ã¯è¿ãããé
åã«ããã¦ã空ã®ã¾ã¾ã§ãããã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããããã¨ã¯ããã¾ããã
console.log(
[1, , 3].map((x, index) => {
console.log(`Visit ${index}`);
return x * 2;
}),
);
// Visit 0
// Visit 2
// [2, empty, 6]
parseInt() ã map() ã§ä½¿ç¨
(ãã®ããã°ã®è¨äºã«åµçºããã¾ãã)
ã³ã¼ã«ããã¯é¢æ°ã¯ç¬¬ä¸å¼æ°ï¼å¤æããã¹ãè¦ç´ ï¼ã ããæèãã¦æå®ããã±ã¼ã¹ãã»ã¨ãã©ã ã¨æãã¾ãã ãããä¸è¬çã«ç¬¬ä¸å¼æ°ãã使ããªããããªé¢æ°ã§ããå®ã¯è¿½å ã®ãªãã·ã§ã³å¼æ°ãåãåã£ã¦ããå ´åãããã¾ããããã¯æ··ä¹±ã«ã¤ãªããå¯è½æ§ãããã¾ãã
ã¾ããã®ä¾ãã覧ãã ããã
["1", "2", "3"].map(parseInt);
è¿å¤ã¯ [1, 2, 3]
ã¨ãªãããã§ãããå®éã«ã¯ [1, NaN, NaN]
ã¨ãªãã¾ãã
parseInt
ã¯å¤§æµä¸ã¤ã®å¼æ°ã®ã¿ã§ä½¿ããã¾ãããå®éã«ã¯ 2 ã¤ã®å¼æ°ãåã£ã¦ãã¾ãã 1 ã¤ç®ã¯æ°å¤æååã 2 ã¤ç®ã¯åºæ°ã§ãã Array.prototype.map
ã¯ã³ã¼ã«ããã¯ã«æ¬¡ã® 3 ã¤ã®å¼æ°ãä¸ãã¦ãã¾ãã
parseInt
㯠3 ã¤ç®ã®å¼æ°ãç¡è¦ãã¾ããã 2 ã¤ç®ã®å¼æ°ã¯ç¡è¦ãã¾ãããããã¯æ··ä¹±ãèµ·ããå¯è½æ§ãããã½ã¼ã¹ã§ãã
ç¹°ãè¿ãæé ã®æ£ç¢ºãªä¾ã¯ä»¥ä¸ã®éãã§ãã
// parseInt(string, radix) -> map(parseInt(value, index))
/* first iteration (index is 0): */ parseInt("1", 0); // 1
/* second iteration (index is 1): */ parseInt("2", 1); // NaN
/* third iteration (index is 2): */ parseInt("3", 2); // NaN
解決çãèãã¦ã¿ã¾ãããã
const returnInt = (element) => parseInt(element, 10);
["1", "2", "3"].map(returnInt); // [1, 2, 3]
// æå¾
ããéããæ°å¤ã®é
åãè¿ãã
// ã¢ãã¼é¢æ°æ§æã使ã£ã¦ãããç°¡æ½ã«ä¸è¨ã¨åãçµæãå¾ããã¨ãåºæ¥ã¾ãã
["1", "2", "3"].map((str) => parseInt(str)); // [1, 2, 3]
// ã¡ãªã¿ã«ãã®å½é¡ã§ã¯ãã£ã¨ç°¡åã«åãçµæãå¾ãæ¹æ³ãããã¾ãã
["1", "2", "3"].map(Number); // [1, 2, 3]
// parseInt() ã¨ã¯éã£ã¦ã Number() 㯠float ã¾ã㯠(解決ãã) ææ°è¡¨ç¾ãè¿ãã¾ãã
["1.1", "2.2e2", "3e300"].map(Number); // [1.1, 220, 3e+300]
// æ¯è¼ã®ããã«ãä¸è¨ã®é
åã« parseInt() ãç¨ããã¨æ¬¡ã®ããã«ãªãã¾ãã
["1.1", "2.2e2", "3e300"].map((str) => parseInt(str)); // [1, 2, 3]
parseInt
ã弿°ã¨ãã¦å¼ã³åºããã map ã¡ã½ããã®ä»£æ¿åºåã® 1 ã¤ã¯ã次ã®ããã«å®è¡ããã¾ãã
const strings = ["10", "10", "10"];
const numbers = strings.map(parseInt);
console.log(numbers);
// å®éã®çµæ [10, NaN, 2] ã¯ä¸è¨ã®èª¬æããããã¨æå¤ãªãã®ããããã¾ããã
undefined ãæã¤å¯¾å¿ä»ããããé
å
undefined
ã¾ã㯠nothing ãè¿ãã¨ã以ä¸ã®ãã®ãè¿ãã¾ãã
const numbers = [1, 2, 3, 4];
const filteredNumbers = numbers.map((num, index) => {
if (index < 3) {
return num;
}
});
// index 㯠0 ããå§ã¾ãã®ã§ã filterNumbers 㯠1,2,3 ããã³ undefined ã«ãªãã¾ãã
// filteredNumbers 㯠[1, 2, undefined, undefined]
// numbers 㯠[1, 2, 3, 4] ã®ã¾ã¾
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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