Baseline Widely available
reduce()
㯠Array
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ãé
åã®ããããã®è¦ç´ ã«å¯¾ãã¦ãã¦ã¼ã¶ã¼ãæä¾ããã縮å°ãã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã¾ãããã®éãç´åã®è¦ç´ ã®è¨ç®çµæã®è¿å¤ã渡ãã¾ããé
åã®ãã¹ã¦ã®è¦ç´ ã«å¯¾ãã¦ã縮å°ãã³ã¼ã«ããã¯é¢æ°ãå®è¡ããæçµçµæã¯ãåä¸ã®å¤ã¨ãªãã¾ãã
ã³ã¼ã«ããã¯ã®ååå®è¡æã«ã¯ãç´åã®è¨ç®ã®è¿å¤ãã¯åå¨ãã¾ããã åæå¤ãä¸ããããå ´åã¯ã代ããã«ä½¿ç¨ããããã¨ãããã¾ãã ããã§ãªãå ´åã¯ãé åã®è¦ç´ 0 ãåæå¤ã¨ãã¦ä½¿ç¨ãããæ¬¡ã®è¦ç´ ï¼0 ã®ä½ç½®ã§ã¯ãªã 1 ã®ä½ç½®ï¼ããå復å¦çãéå§ããã¾ãã
reduce()
ã§ä¸çªããããããã®ã¯ãé
åã®ãã¹ã¦ã®è¦ç´ ã®åãè¿ãå ´åã§ãããã
const array1 = [1, 2, 3, 4];
// 0 + 1 + 2 + 3 + 4
const initialValue = 0;
const sumWithInitial = array1.reduce(
(accumulator, currentValue) => accumulator + currentValue,
initialValue,
);
console.log(sumWithInitial);
// Expected output: 10
縮å°é¢æ°ã¯é åãè¦ç´ ãã¨ã«èµ°æ»ããããããã®æ®µéã§ãåã®æ®µéã®çµæã«ç¾å¨ã®é åã®å¤ãå ãã¦ããã¾ã (ãã®çµæã¯ããã以åã®ãã¹ã¦ã®æ®µéãåç®ãããã®ã§ã)ã
æ§æreduce(callbackFn)
reduce(callbackFn, initialValue)
弿°
callbackFn
é
åã®åè¦ç´ ã«å¯¾ãã¦å®è¡ããã颿°ã§ãããã®è¿å¤ã¯ã次㫠callbackFn
ãå¼ã³åºãéã® accumulator
弿°ã®å¤ã«ãªãã¾ããæå¾ã®å¼ã³åºãã§ã¯ãè¿å¤ã¯ reduce()
ã®è¿å¤ã¨ãªãã¾ãããã®é¢æ°ã¯ä»¥ä¸ã®å¼æ°ã§å¼ã³åºããã¾ãã
accumulator
ååã® callbackFn
ã®å¼ã³åºãçµæã®å¤ã§ããååã®å¼ã³åºãã§ã¯ initialValue
ãæå®ããã¦ããå ´åã¯ãã®å¤ãããã§ãªãå ´å㯠array[0]
ã®å¤ã§ãã
currentValue
ç¾å¨ã®è¦ç´ ã®å¤ã§ããååã®å¼ã³åºãã§ã¯ initialValue
ãæå®ãããå ´å㯠array[0]
ã®å¤ã§ãããããã§ãªãå ´å㯠array[1]
ã®å¤ã§ãã
currentIndex
currentValue
ã®ä½ç½®ã§ããååã®å¼ã³åºãã§ã¯ã initialValue
ãæå®ãããå ´å㯠0
ãããã§ãªãå ´å㯠1
ã§ãã
array
reduce()
ãå¼ã³åºãããé
åã§ãã
initialValue
çç¥å¯
ã³ã¼ã«ããã¯ãæåã«å¼ã³åºãããæã« accumulator
ãåæåãããå¤ã§ãã initialValue
ãæå®ãããå ´åãcallbackFn
ã¯é
åã®æåã®å¤ã currentValue
ã¨ãã¦å®è¡ãéå§ãã¾ãã ãã initialValue
ãæå®ãããªãã£ãå ´åãaccumulator
ã¯é
åã®æåã®å¤ã«åæåãããcallbackFn
ã¯é
åã® 2 ã¤ç®ã®å¤ã currentValue
ã¨ãã¦å®è¡ãéå§ãã¾ãããã®å ´åãé
åã空ã§ããã°ï¼accumulator
ã¨ãã¦è¿ãæåã®å¤ããªããã°ï¼ã¨ã©ã¼ãçºçãã¾ãã
é åå ¨ä½ã«ããã£ã¦ã縮å°ãã³ã¼ã«ããã¯é¢æ°ãå®è¡ããçµæã®å¤ã§ãã
ä¾å¤TypeError
é
åã«è¦ç´ ããªããã㤠initialValue
ãæä¾ãããªãã£ãå ´åã«çºçãã¾ãã
reduce()
ã¡ã½ããã¯å復å¦çã¡ã½ããã§ããã縮å°ãã³ã¼ã«ããã¯é¢æ°ãé
åã«å«ã¾ããåè¦ç´ ã«å¯¾ãã¦æé ã«ä¸åº¦ãã¤å¼ã³åºãããã®çµæãåä¸ã®å¤ã«ç©ç®ãã¾ããæ¯åã callbackFn
ã®è¿å¤ã¯æ¬¡åã® callbackFn
ã®å¼ã³åºãã§ accumulator
ã¨ãã¦æ¸¡ããã¾ããæçµç㪠accumulator
ã®å¤ï¼é
åã®æçµå復å¦çã«ãã㦠callbackFn
ããè¿ãããå¤ï¼ã reduce()
ã®è¿å¤ã¨ãªãã¾ãã
callbackFn
ã¯å¤ãå²ãå½ã¦ããã¦ããé
åã¤ã³ããã¯ã¹ã«å¯¾ãã¦ã®ã¿å¼ã³åºããã¾ããçé
åã®ç©ºã®ã¹ãããã«å¯¾ãã¦ã¯å¼ã³åºããã¾ããã
ä»ã®å復å¦çã¡ã½ããã¨ã¯ç°ãªãã reduce()
㯠thisArg
弿°ãåãå
¥ãã¾ããã callbackFn
ã¯å¸¸ã« undefined
ã this
ã¨ãã¦å¼ã³åºããã callbackFn
ã峿 ¼ã¢ã¼ãã§ãªãå ´å㯠globalThis
ã«ç½®ãæãããã¾ãã
reduce()
ã¯é¢æ°åããã°ã©ãã³ã°ã®ä¸å¿çãªæ¦å¿µã§ããããã§ã¯ãã©ã®å¤ãå¤ç°ããããã¨ãã§ããªãã®ã§ãé
åã®ãã¹ã¦ã®å¤ãç©ç®ããã«ã¯ãå復å¦çã®ãã³ã«æ°ããç©ç®å¤ãè¿ããªããã°ãªãã¾ããããã®ç´æäºã¯ JavaScript ã® reduce()
ã«ãå½ã¦ã¯ã¾ãã¾ããã¹ãã¬ããæ§æãä»ã®å¯è½ãªéãã³ãã¼ããæ¹æ³ã使ç¨ãã¦ãæ¢åã®ãã®ã夿´ããã«ãã¢ãã¥ã¼ã ã¬ã¼ã¿ã¼ã¨ãã¦æ°ããé
åããªãã¸ã§ã¯ãã使ãã¹ããªã®ã§ãããããã¢ãã¥ã¼ã ã¬ã¼ã¿ã¼ãã³ãã¼ãã代ããã«å¤åããããã¨ã«ããå ´åãã³ã¼ã«ããã¯ã§å¤æ´ãããªãã¸ã§ã¯ããè¿ããã¨ãå¿ããªãã§ãã ããããããªããã°ã次ã®å復å¦çã§ undefined ãåãåããã¨ã«ãªãã¾ãã
reduce()
ã¡ã½ããã¯å¼ã³åºãå
ã®é
åã夿´ãã¾ãããã callbackFn
ã«æå®ããã颿°ã¯å¤æ´ãããã¨ãããã¾ãããã ããé
åã®é·ã㯠callbackFn
ãæåã«å¼ã³åºãåã«ä¿åããããã¨ã«æ³¨æãã¦ãã ããããããã£ã¦ã
callbackFn
㯠reduce()
ã®å¼ã³åºããå§ããã¨ãã®é
åã®é·ããè¶
ãã¦è¿½å ãããè¦ç´ ã«ã¯ã¢ã¯ã»ã¹ãã¾ãããcallbackFn
ãå度å¼ã³åºããããã¨ã¯ããã¾ãããcallbackFn
ã«ãã£ã¦å¤æ´ãããå ´åã callbackFn
ã«æ¸¡ãããå¤ã¯ãã®è¦ç´ ãåå¾ãããæç¹ã®å¤ã«ãªãã¾ããåé¤ãããè¦ç´ 㯠undefined
ã§ãããã®ããã«å¦çããã¾ããè¦å: åé ã§èª¬æãããããªãåç §ä¸ã®é åã®åæé²è¡ã§ã®å¤æ´ã¯ï¼ç¹æ®ãªå ´åãé¤ãã¦ï¼æ®éã¯é¿ããã¹ãã§ããå¤ãã®å ´åãçè§£ãã«ããã³ã¼ãã«ãªãã¾ãã
reduce()
ã¡ã½ããã¯æ±ç¨çã§ãããã㯠this
å¤ã« length
ããããã£ã¨æ´æ°ãã¼ã®ããããã£ããããã¨ã ããæå¾
ãã¾ãã
é
åãï¼ä½ç½®ã«é¢ãããï¼ 1 ã¤ã®è¦ç´ ããæããã initialValue
ãæå®ãããªãã£ãå ´åãã¾ã㯠initialValue
ãæå®ããã¦ãã¦ãé
åã空ã ã£ãå ´åã callbackFn
ã¯å®è¡ãããã«è¦ç´ ãè¿å´ããã¾ãã
initialValue
ãæä¾ãããé
åã空ã§ãªãå ´åã reduce ã¡ã½ããã¯å¸¸ã« 0 ã®ä½ç½®ããã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãå§ãã¾ãã
initialValue
ãæä¾ãããªãã£ãå ´åã reduce ã¡ã½ããã¯ã次ã®ä¾ã«ç¤ºãããã«ãé·ãã 1 ãã大ããé
åãé·ãã 1 ã®é
åãé·ãã 0 ã®é
åã«å¯¾ãã¦ç°ãªãåä½ããã¾ãã
const getMax = (a, b) => Math.max(a, b);
// ã³ã¼ã«ããã¯ã¯ 0 ã®ä½ç½®ããé
åå
ã®å
¨è¦ç´ ã«å¯¾ãã¦å¼ã³åºããã
[1, 100].reduce(getMax, 50); // 100
[50].reduce(getMax, 10); // 50
// ã³ã¼ã«ããã¯ã¯ 1 ã®ä½ç½®ã«å¯¾ã㦠1 度ã ãå¼ã³åºããã
[1, 100].reduce(getMax); // 100
// ã³ã¼ã«ããã¯ã¯å¼ã³åºãããªã
[50].reduce(getMax); // 50
[].reduce(getMax, 1); // 1
[].reduce(getMax); // TypeError
ä¾ åæå¤ããªãå ´åã® reduce() ã®åä½
ä¸è¨ã®ã³ã¼ãã¯ãåæå¤ããªãå ´åã«é
åã« reduce()
ãå¼ã³åºããã¨ãã«ä½ãèµ·ãããã示ãã¾ãã
const array = [15, 16, 17, 18, 19];
function reducer(accumulator, currentValue, index) {
const returns = accumulator + currentValue;
console.log(
`accumulator: ${accumulator}, currentValue: ${currentValue}, index: ${index}, returns: ${returns}`,
);
return returns;
}
array.reduce(reducer);
ã³ã¼ã«ããã¯é¢æ°ã¯ 4 åå¼ã³åºãããååã®å¼æ°ã®å 容ã¯ä»¥ä¸ã®ããã«ãªãã¾ãã
accumulator
currentValue
index
è¿å¤ æåã®å¼ã³åºã 15
16
1
31
2 çªç®ã®å¼ã³åºã 31
17
2
48
3 çªç®ã®å¼ã³åºã 48
18
3
66
4 çªç®ã®å¼ã³åºã 66
19
4
85
array
ã®è¦ç´ ã¯å¦çä¸ã«å¤åãã¾ããã常㫠[15, 16, 17, 18, 19]
ã§ãã reduce()
ã®è¿å¤ã¯ãã³ã¼ã«ããã¯å¼ã³åºãã®æå¾ã®è¿å¤ã§ãã (85
) ã¨ãªãã§ãããã
ããã§ã¯ãåãã¢ã«ã´ãªãºã ã§åãé
åãæ¸ããã¾ããã reduce()
ã® 2 çªç®ã®å¼æ°ã¨ã㦠10
ã¨ãã initialValue
ãæ¸¡ãã¾ãã
[15, 16, 17, 18, 19].reduce(
(accumulator, currentValue) => accumulator + currentValue,
10,
);
ã³ã¼ã«ããã¯ã¯ 5 åå¼ã³åºãããããããã®å¼ã³åºãã«ããã弿°ã¨è¿å¤ã¯æ¬¡ã®ããã«ãªãã¾ãã
accumulator
currentValue
index
è¿å¤ æåã®å¼ã³åºã 10
15
0
25
2 çªç®ã®å¼ã³åºã 25
16
1
41
3 çªç®ã®å¼ã³åºã 41
17
2
58
4 çªç®ã®å¼ã³åºã 58
18
3
76
5 çªç®ã®å¼ã³åºã 76
19
4
95
ãã®å ´åã® reduce()
ã®è¿å¤ã¯ 95
ã¨ãªãã¾ãã
ãªãã¸ã§ã¯ãã®é
åã«å«ã¾ããå¤ã®åè¨å¤ãåºãã«ã¯ããã¹ã¦ã®é
ç®ã颿°å
ã§åå¾ã§ããããã«ããããã« initialValue
ãæå®ããå¿
è¦ãããã¾ãã
const objects = [{ x: 1 }, { x: 2 }, { x: 3 }];
const sum = objects.reduce(
(accumulator, currentValue) => accumulator + currentValue.x,
0,
);
console.log(sum); // logs 6
颿°ãç´åã«ãã¤ãæ¥ç¶
pipe
颿°ã¯ä¸é£ã®é¢æ°ãåãåããæ°ãã颿°ãè¿ãã¾ããæ°ãã颿°ã弿°ã§å¼ã³åºãããã¨ãä¸é£ã®é¢æ°ãé çªã«å¼ã³åºããããããããåå颿°ã®è¿å¤ãåãåãã¾ãã
const pipe =
(...functions) =>
(initialValue) =>
functions.reduce((acc, fn) => fn(acc), initialValue);
// åæã«ä½¿ç¨ããç´ æ
const double = (x) => 2 * x;
const triple = (x) => 3 * x;
const quadruple = (x) => 4 * x;
// ç¹å®ã®å¤ã®ä¹ç®ã®ããã®åæé¢æ°
const multiply6 = pipe(double, triple);
const multiply9 = pipe(triple, triple);
const multiply16 = pipe(quadruple, quadruple);
const multiply24 = pipe(double, triple, quadruple);
// ä½¿ç¨æ¹æ³
multiply6(6); // 36
multiply9(9); // 81
multiply16(16); // 256
multiply24(10); // 240
ãããã¹ãç´åã«å®è¡
ãããã¹ã·ã¼ã±ã³ã¹ã¯ãéåæã§è¡ããããã¨ãé¤ãã°ãåºæ¬çã«ååã®ç¯ã§ç¤ºããã颿°ã®ãã¤ãæ¥ç¶ã§ãã
// ãã¤ãã¨æ¯è¼ããã¨ã fn(acc) 㯠acc.then(fn) ã«å¤æ´ããã
// initialValue ã¯ãããã¹ã§ãããã¨ãä¿è¨¼ããã¾ãã
const asyncPipe =
(...functions) =>
(initialValue) =>
functions.reduce((acc, fn) => acc.then(fn), Promise.resolve(initialValue));
// åæã«ä½¿ç¨ããæ§æè¦ç´
const p1 = async (a) => a * 5;
const p2 = async (a) => a * 2;
// æ§æããã颿°ã¯ãæçµçã«ãã¹ã¦ãããã¹ã§å
ã¾ããããã
// ãããã¹ä»¥å¤ãè¿ããã¨ãã§ãã¾ãã
const f3 = (a) => a * 3;
const p4 = async (a) => a * 4;
asyncPipe(p1, p2, f3, p4)(10).then(console.log); // 1200
asyncPipe
㯠async
/await
ã使ç¨ãã¦å®è£
ãããã¨ãã§ãã pipe
ã¨ã®é¡ä¼¼æ§ããããã示ãã¦ãã¾ãã
const asyncPipe =
(...functions) =>
(initialValue) =>
functions.reduce(async (acc, fn) => fn(await acc), initialValue);
reduce() ãçé
åã§ä½¿ç¨
reduce()
ã¯çé
åã®æ¬ è½ãã¦ããè¦ç´ ãã¹ããããã¾ãããå¤ã undefined
ã®å ´åã¯ã¹ããããã¾ããã
console.log([1, 2, , 4].reduce((a, b) => a + b)); // 7
console.log([1, 2, undefined, 4].reduce((a, b) => a + b)); // NaN
é
å以å¤ã®ãªãã¸ã§ã¯ãã«å¯¾ãã reduce() ã®å¼ã³åºã
reduce()
ã¡ã½ãã㯠this
ã® length
ããããã£ãèªã¿è¾¼ã¿ã次ã«ãã¼ã length
ããå°ããéè² ã®æ´æ°ã§ããåããããã£ã«ã¢ã¯ã»ã¹ãã¾ãã
const arrayLike = {
length: 3,
0: 2,
1: 3,
2: 4,
3: 99, // length ã 3 ã§ãããã reduce() ããã¯ç¡è¦ããã
};
console.log(Array.prototype.reduce.call(arrayLike, (x, y) => x + y));
// 9
reduce() ã使ç¨ãã¹ãã§ãªãå ´å
reduce()
ã®ãããªå¤ç®çã®é«æ¬¡é¢æ°ã¯å¼·åã§ãããç¹ã«çµé¨ã®æµ
ã JavaScript ã®éçºè
ã«ã¨ã£ã¦ã¯çè§£ãã«ããå ´åãããã¾ããä»ã®é
åã¡ã½ããã使ç¨ããæ¹ãã³ã¼ããæå¿«ã«ãªãå ´åãéçºè
㯠reduce()
ã使ç¨ããä»ã®å©ç¹ã¨èªã¿åãå¯è½æ§ã®ãã¬ã¼ããªããæ¯è¼æ¤è¨ããå¿
è¦ãããã¾ãã
reduce()
ã¯å¸¸ã« for...of
ã«ã¼ãã¨åçã§ãããä¸ä½ã¹ã³ã¼ãã®å¤æ°ã夿´ãã代ããã«ãåå復å¦çã§æ°ããå¤ãè¿ããã¨ã«æ³¨æãã¦ãã ããã
const val = array.reduce((acc, cur) => update(acc, cur), initialValue);
// ããã¯ã次ã®ãã®ã¨åçã§ã
let val = initialValue;
for (const cur of array) {
val = update(val, cur);
}
åè¿°ã®ããã«ã人ã
ã reduce()
ã使ç¨ãããã¨æãçç±ã¯ããã¼ã¿ãä¸å¤ã¨ãã颿°åããã°ã©ãã³ã°ã®ææ³ã模å£ããããã§ãããããã£ã¦ãã¢ãã¥ã ã¬ã¼ã¿ã¼ã®ä¸å¤æ§ãæ¯æããéçºè
ã¯ã次ã®ããã«å復å¦çãã¨ã«ã¢ãã¥ã ã¬ã¼ã¿ã¼å
¨ä½ãã³ãã¼ããå¾åãããã¾ãã
const names = ["Alice", "Bob", "Tiff", "Bruce", "Alice"];
const countedNames = names.reduce((allNames, name) => {
const currCount = Object.hasOwn(allNames, name) ? allNames[name] : 0;
return {
...allNames,
[name]: currCount + 1,
};
}, {});
ãã®ã³ã¼ãã¯éå¹ççã§ããã¨ããã®ããåã¤ãã¬ã¼ã¿ã¼ã¯ allNames
ãªãã¸ã§ã¯ãå
¨ä½ãã³ãã¼ããå¿
è¦ããããããã¯åºæã®ååãããã¤ãããã«ãã£ã¦ãµã¤ãºã大ãããªã£ã¦ãã¾ãããã§ãããã®ã³ã¼ãã¯ææªã®å ´åã N
ã names
ã®é·ãã ã¨ãã㨠O(N^2)
ã®ããã©ã¼ãã³ã¹ã«ãªãã¾ãã
åå復å¦çã§ allNames
ãªãã¸ã§ã¯ãã夿´ããã»ããããããã§ãããããããã allNames
ããããã«ãã夿´ãããã®ã§ããã°ã reduce()
ãåç´ãª for
ã«ã¼ãã«å¤æããæ¹ãããæç¢ºã§ãã
const names = ["Alice", "Bob", "Tiff", "Bruce", "Alice"];
const countedNames = names.reduce((allNames, name) => {
const currCount = allNames[name] ?? 0;
allNames[name] = currCount + 1;
// allNames ãè¿ããªãã¨ã次ã®å復å¦çã§ undefined ãåãåã
return allNames;
}, Object.create(null));
const names = ["Alice", "Bob", "Tiff", "Bruce", "Alice"];
const countedNames = Object.create(null);
for (const name of names) {
const currCount = countedNames[name] ?? 0;
countedNames[name] = currCount + 1;
}
ãããã£ã¦ãã¢ãã¥ã ã¬ã¼ã¿ã¼ãé åããªãã¸ã§ã¯ãã§ãå復å¦çãã¨ã«é åããªãã¸ã§ã¯ããã³ãã¼ãã¦ããå ´åã誤ã£ã¦ã³ã¼ãã« 2 次çãªè¤éããå°å ¥ãã¦ãã¾ãã大ããªãã¼ã¿ã§ããã«ããã©ã¼ãã³ã¹ãä½ä¸ãã¦ãã¾ãå¯è½æ§ãããã¾ãã
reduce()
ã®åãå
¥ããããç¨éã®ããã¤ãã¯ä¸ã§æå®ããããã®ã§ãï¼ç¹ã«ãé
åã®åè¨ããããã¹ã®é åºä»ãã颿°ã®ãã¤ãå¦çï¼ãä»ã«ã reduce()
ãããåªããä»£æ¿ææ®µãåå¨ããå ´åãããã¾ãã
é
åã®å¹³å¦åã代ããã« flat()
ã使ç¨ãã¦ãã ããã
const flattened = array.reduce((acc, cur) => acc.concat(cur), []);
const flattened = array.flat();
ããããã£ã«ãããªãã¸ã§ã¯ãã®ã°ã«ã¼ãåã代ããã« Object.groupBy()
ã使ç¨ãã¦ãã ããã
const groups = array.reduce((acc, obj) => {
const key = obj.name;
const curGroup = acc[key] ?? [];
return { ...acc, [key]: [...curGroup, obj] };
}, {});
const groups = Object.groupBy(array, (obj) => obj.name);
ãªãã¸ã§ã¯ãã®é
åã«æ ¼ç´ããã¦ããé
åã®é£çµã代ããã« flatMap()
ã使ç¨ãã¦ãã ããã
const friends = [
{ name: "Anna", books: ["Bible", "Harry Potter"] },
{ name: "Bob", books: ["War and peace", "Romeo and Juliet"] },
{ name: "Alice", books: ["The Lord of the Rings", "The Shining"] },
];
const allBooks = friends.reduce((acc, cur) => [...acc, ...cur.books], []);
const allBooks = friends.flatMap((person) => person.books);
é
åå
ã®éè¤é
ç®ã®é¤å»ã代ããã« Set
㨠Array.from()
ã使ç¨ãã¦ãã ããã
const uniqArray = array.reduce(
(acc, cur) => (acc.includes(cur) ? acc : [...acc, cur]),
[],
);
const uniqArray = Array.from(new Set(array));
é
åã®è¦ç´ ã®åé¤ã追å ã代ããã« flatMap()
ã使ç¨ãã¦ãã ããã
// æ°å¤ã®é
åãåãåããå®å
¨äºä¹ãå¹³æ¹æ ¹ã«åå²ãã¾ãã
const roots = array.reduce((acc, cur) => {
if (cur < 0) return acc;
const root = Math.sqrt(cur);
if (Number.isInteger(root)) return [...acc, root, root];
return [...acc, cur];
}, []);
const roots = array.flatMap((val) => {
if (val < 0) return [];
const root = Math.sqrt(val);
if (Number.isInteger(root)) return [root, root];
return [val];
});
é
åããè¦ç´ ãåãé¤ãã ããªã filter()
ã使ç¨ã§ãã¾ãã
è¦ç´ ã®æ¤ç´¢ãã¾ãã¯è¦ç´ ãæ¡ä»¶ãæºãããã©ããã®ãã¹ãã代ããã« find()
㨠findIndex()
ã¾ã㯠some()
㨠every()
ã使ç¨ãã¦ãã ããããããã®ã¡ã½ããã«ã¯ãé
åå
¨ä½ãå復å¦çãããã¨ãªããçµæã確å®ãããããã«è¿ãã¨ãã好ã¾ãããã¨ãããã¾ãã
const allEven = array.reduce((acc, cur) => acc && cur % 2 === 0, true);
const allEven = array.every((val) => val % 2 === 0);
reduce()
ãæè¯ã®é¸æã§ããå ´åã¯ãããã¥ã¡ã³ãåã¨å¤æ°åã®æå³ã¥ãããããã¨ã§ãå¯èªæ§ã®æ¬ ç¹ã軽æ¸ããæå©ãã«ãªãã¾ãã
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