有用なJS高次関数
18531 ワード
有用なJavaScript配列メソッドの高次関数
forEach, map
forEach
配列内の各要素に対して、指定されたコールバック関数をそれぞれ実行します.
arr.forEach(callback(currentvalue,index,array))
const arr = ['a','b','c'];
arr.forEach((element,index)=> console.log(element,index));
// "a" 0
// "b" 1
// "c" 2
map
配列内の各要素に対して実行されるコールバック関数の結果を収集することで、新しい配列を返します.
foreachに似ていて、
forEachはundefinedを返しますが、mapは新しい配列を返します.
arr.map(callback(currentvalue,index,array))
const arr = [1,2,3,4];
console.log(arr.map((element) => element*2));
// [2,4,6,8];
find, filter
find
指定したコールバック関数を満たす最初の要素の値を返します.インデックスの値を決定するにはfindIndexを使用します.
arr.find(callback(element,index,array))
const arr = [6,3,11,24];
const found = arr.find((element)=> element>10);
console.log(found);
// 11
filter
findと同様に、filterは、所与のコールバック関数を満たすすべての要素の新しい配列を返します.
コールバック関数で条件に基づいてtrueまたはfalse値を返すことを推奨します.
arr.filter(callback(element,index,array))
const arr = [32,64,88,82];
const highScore = arr.filter((element) => element > 80);
console.log(highScore);
// [88, 82]
reduce
アレイ内の各要素に対してcallback関数を実行し、実行時の戻り値はループに蓄積され、最終的に最終結果が返されます.
arr.reduce(callback(accumulator,currentValue,currentIndex),initialValue)
// accumulator 누산기로 리턴 값을 누적합니다.
// currentValue 처리할 현재 Element입니다.
// currentIndex 처리할 현재 Index입니다.
// initialValue 초깃값으로, 제공하지 않으면 배열의 첫번째 요소가 초깃값이 됩니다. 빈 배열에서 초깃값 없이 사용한다면 오류가 발생합니다.
const arr = [5,2,3,4];
const total = arr.reduce((acc,cur)=> acc+cur);
console.log(total);
// 14
const avg = arr.reduce((acc,cur)=> acc+cur)/arr.length;
console.log(avg);
// 3.5
const max = arr.reduce((max,cur) => max<cur ? cur : max)
console.log(max);
// 5
sort
デフォルトのソート順にアレイ内の要素をソートし、アレイに戻ります.デフォルトのソート順は文字列のUnicodeに従い、パラメータを指定することで、必要に応じてソート順を変更できます.
arr.sort(compareFunction);
const arr = [1,12,24,27,4,62];
arr.sort();
console.log(arr);
// [1, 12, 24, 27, 4, 62]
// 기본 순서는 문자열의 유니코드를에 따르기 때문에 낮은 순서로 정렬되지 않는다.
arr.sort((a,b) => a-b)
console.log(arr);
// [1, 4, 12, 24, 27, 62]
compareFunctionのフォーマットfunction compareFunction(a,b){
if(a>b)
return 1;
if(a<b)
return -1;
// if(a===b)
return 0;
}
// compareFunction return 값이 0보다 작을 경우 a를 b보다 낮다고 판단합니다.
// return 값이 0일 경우 같다고 판단하고, 0보다 큰 경우 b를 a보다 낮다고 판단합니다.
some, every
some
配列内の任意の要素が所定のcallback関数を満たしていることを確認し、そのうちの1つが満たされている場合はtrueを返し、そうでない場合はfalseを返します.
空の配列は常にfalseを返します.
arr.some(callback(currentValue,index,array));
const arr = [1,2,3,4];
const result = arr.some((element) => element > 3);
console.log(result);
// true
every
配列内のすべての要素が所定のcallback関数を満たすことを確認します.不満がある場合はfalse値を返します.
arr.every(callback(currentValue,index,array));
const arr = [1,2,3,4];
const result = arr.every((element) => element > 3);
console.log(result);
// false
Reference
この問題について(有用なJS高次関数), 我々は、より多くの情報をここで見つけました https://velog.io/@3000/유용한-JS-고차함수テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol