Baseline Widely available
Array
ì¸ì¤í´ì¤ì flatMap()
ë©ìëë ë°°ì´ì ê° ììì 주ì´ì§ ì½ë°± í¨ì를 ì ì©í ë¤ì ê·¸ 결과를 í ë¨ê³ì© ííííì¬ íì±ë ì ë°°ì´ì ë°íí©ëë¤. ì´ ë©ìëë map()
ë¤ì ê¹ì´ 1ì flat()
ì ë¶ì´ë ê²(arr.map(...args).flat()
)ê³¼ ëì¼íì§ë§, ë ë©ìë를 ë°ë¡ í¸ì¶íë ê²ë³´ë¤ ì½ê° ë í¨ì¨ì ì
ëë¤.
const arr1 = [1, 2, 1];
const result = arr1.flatMap((num) => (num === 2 ? [2, 2] : 1));
console.log(result);
// Expected output: Array [1, 2, 2, 1]
구문
flatMap(callbackFn)
flatMap(callbackFn, thisArg)
매ê°ë³ì
callback
ë°°ì´ì ê° ììì ëí´ ì¤íí í¨ìì ëë¤. ì ë°°ì´ì ì ìì를 í¬í¨íë ë°°ì´ì ë°ííê±°ë, ì ë°°ì´ì ì¶ê°í ë°°ì´ì´ ìë ë¨ì¼ ê°ì ë°íí´ì¼ í©ëë¤. ì´ í¨ìë ë¤ì ì¸ì를 ì¬ì©íì¬ í¸ì¶ë©ëë¤.
element
ë°°ì´ìì ì²ë¦¬ ì¤ì¸ íì¬ ìì.
index
ë°°ì´ìì ì²ë¦¬ ì¤ì¸ íì¬ ììì ì¸ë±ì¤.
array
flatMap()
ì´ í¸ì¶ë ë°°ì´.
thisArg
Optional
callbackFn
ì ì¤íí ë this
ë¡ ì¬ì©í ê°ì
ëë¤. ìí ë©ìë를 참조íì¸ì.
ê° ììê° ì½ë°± í¨ìì ê²°ê³¼ì´ê³ , ê¹ì´ 1ë¡ íííë ì ë°°ì´ì ëë¤.
ì¤ëªflatMap()
ë©ìëë ìí ë©ìëì
ëë¤. ì½ë°± í¨ìì ëí ìì¸í ì¤ëª
ì Array.prototype.map()
ì 참조íì¸ì. flatMap()
ë©ìëë ê° ììì ëí´ ìë¡ì´ ë°°ì´ ìì를 ìì±íê³ , ê²°ê³¼ ë°°ì´ì ì°ê²°íì¬ ìë¡ì´ ë°°ì´ì íì±íë map(callbackFn, thisArg)
ë¤ì flat(1)
ì´ ë¶ì ê²ê³¼ ëì¼í©ëë¤.
flatMap()
ë©ìëë ë²ì©ì
ëë¤. ì´ ë©ìëë this
ê°ì length
ìì±ê³¼ ì ì í¤ ìì±ë§ ìì ê²ì¼ë¡ ììí©ëë¤. ê·¸ë¬ë callbackFn
ìì ë°íëë ê°ì ë°ëì ë°°ì´ì´ì´ì¼ íííí ì ììµëë¤.
const arr = [1, 2, 3, 4];
arr.flatMap((x) => [x, x * 2]);
// ë ë¤ìê³¼ ê°ìµëë¤.
const n = arr.length;
const acc = new Array(n * 2);
for (let i = 0; i < n; i++) {
const x = arr[i];
acc[i * 2] = x;
acc[i * 2 + 1] = x * 2;
}
// [1, 2, 2, 4, 3, 6, 4, 8]
ì´ í¹ë³í ê²½ì°ë ê°ë¹ì§ 컬ë ì
ìí´ì¼ íë ìì ë°°ì´ì ìì±íê³ , ë°í ë°°ì´ì í¬ê¸°ë¥¼ ì주 ì¡°ì í íìê° ì기 ë문ì, flatMap
ì ê·¼ ë°©ìì´ for-loop ì ê·¼ ë°©ìë³´ë¤ ë리ë¤ë ì ì ì ìí´ì¼í©ëë¤. ê·¸ë¬ë ì ì°ì±ê³¼ ê°ë
ì±ì´ íìí ê²½ì°ìë flatMapì´ ì¬ì í ì¬ë°ë¥¸ ì루ì
ì¼ ì ììµëë¤.
const arr1 = [1, 2, 3, 4];
arr1.map((x) => [x * 2]);
// [[2], [4], [6], [8]]
arr1.flatMap((x) => [x * 2]);
// [2, 4, 6, 8]
// ì¤ì§ í ë¨ê³ë§ íííë©ëë¤.
arr1.flatMap((x) => [[x * 2]]);
// [[2], [4], [6], [8]]
ìì ìì ë mapì ì¬ì©í´ë ê°ë¥íê² ì§ë§, ë¤ìì flatMap()
ì ì¬ì©ë²ì ë ì ë³´ì¬ì£¼ë ìì ì
ëë¤.
ë¬¸ì¥ ëª©ë¡ìì ë¨ì´ 목ë¡ì ìì±í´ ë³´ê² ìµëë¤.
const arr1 = ["it's Sunny in", "", "California"];
arr1.map((x) => x.split(" "));
// [["it's","Sunny","in"],[""],["California"]]
arr1.flatMap((x) => x.split(" "));
// ["it's","Sunny","in", "", "California"]
ì¶ë ¥ ëª©ë¡ ê¸¸ì´ë ì ë ¥ ëª©ë¡ ê¸¸ì´ì ë¤ë¥¼ ì ìë¤ë ì ì ì ìíì¸ì.
map() ëì¤ í목ì ì¶ê° ë° ì ê±°íë ê²½ì°flatMap
ì map
ëì¤ì í목ì ì¶ê°íê³ ì ê±°(í목 ì ìì ) íë ë°©ë²ì¼ë¡ ì¬ì©í ì ììµëë¤. ì¦, íì ì¼ëì¼ì´ ìë ê° ì
ë ¥ í목ì ê°ë³ì ì¼ë¡ ì²ë¦¬íì¬ ì¬ë¬ í목ì ì¬ë¬ í목ì 매íí ì ììµëë¤. ì´ë° ì미ìì filterì ë°ë ê°ë
ì²ë¼ ìëí©ëë¤. í목ì ì ì§íë ¤ë©´ 1 ìì ë°°ì´ì, í목ì ì¶ê°íë ¤ë©´ ë¤ì¤ ìì ë°°ì´ì, í목ì ì ê±°íë ¤ë©´ 0 ìì ë°°ì´ì ë°íí©ëë¤.
// ìì를 모ë ì ê±°íê³
// íì를 ì§ìì 1ë¡ ë¶í íë¤ê³ ê°ì í´ ë³´ê² ìµëë¤.
const a = [5, 4, -3, 20, 17, -33, -4, 18];
// |\ \ x | | \ x x |
// [4,1, 4, 20, 16, 1, 18]
const result = a.flatMap((n) => {
if (n < 0) {
return [];
}
return n % 2 === 0 ? [n] : [n - 1, 1];
});
console.log(result); // [4, 1, 4, 20, 16, 1, 18]
í¬ì ë°°ì´ì flatMap() ì¬ì©í기
flat()
ì ë°íë ë°°ì´ì ë¹ ì¬ë¡¯ì 무ìíë ë°ë©´, map()
ì ìì¤ ë°°ì´ì ë¹ ì¬ë¡¯ì ëí´ í¸ì¶íì§ ì기 ë문ì callbackFn
ì í¸ì¶ëì§ ììµëë¤.
map()
ì ë°íë ë°°ì´ì ë¹ ì¬ë¡¯ì 무ìíë ë°ë©´, flat()
ì ë°íë ë°°ì´ì ë¹ ì¬ë¡¯ì 무ìí기 ë문ì ìì¤ ë°°ì´ì ë¹ ì¬ë¡¯ì ëí´ìë callbackFn
ì´ í¸ì¶ëì§ ììµëë¤.
console.log([1, 2, , 4, 5].flatMap((x) => [x, x * 2])); // [1, 2, 2, 4, 4, 8, 5, 10]
console.log([1, 2, 3, 4].flatMap((x) => [, x * 2])); // [2, 4, 6, 8]
ë°°ì´ì´ ìë ê°ì²´ì flatMap() ì¬ì©í기
flatMap()
ë©ìëë this
ì length
ìì±ì ì½ì ë¤ì í¤ê° length
ë³´ë¤ ìì ììê° ìë ì ìì¸ ê° ìì±ì ì ê·¼í©ëë¤. ì½ë°± í¨ìì ë°íê°ì´ ë°°ì´ì´ ìë ê²½ì°, ë°íê°ì íì ê²°ê³¼ ë°°ì´ì ë°ë¡ ì¶ê°ë©ëë¤.
const arrayLike = {
length: 3,
0: 1,
1: 2,
2: 3,
3: 4, // lengthê° 3ì´ë¯ë¡ flatMap()ì ìí´ ë¬´ìë©ëë¤.
};
console.log(Array.prototype.flatMap.call(arrayLike, (x) => [x, x * 2]));
// [1, 2, 2, 4, 3, 6]
// ì½ë°±ìì ë°íë ì ì¬ ë°°ì´ì íííëì§ ììµëë¤.
console.log(
Array.prototype.flatMap.call(arrayLike, (x) => ({
length: 1,
0: x,
})),
);
// [ { '0': 1, length: 1 }, { '0': 2, length: 1 }, { '0': 3, length: 1 } ]
ëª
ì¸ì ë¸ë¼ì°ì í¸íì± ê°ì´ 보기
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