array.prototype.find(); | 원본 유지 | 해당 array 요소 한개 반환 |
해당 조건을 만족하는 모든 요소의 반환이 필요할 경우 filter(); 사용.
find(callbackFn)
find(callbackFn, thisArg)
const result = students.find(function(value, index){
return value.score === 90;
});
아래와 같이 간략화 가능함.
const result2 = students.find((value) => value.score=== 90);
console.log(result);
여기서 콜백함수는 boolean 타입을 반환해야 한다.
이 경우 value.score가 true가 될 경우, 해당 값을 반환하고 바로 종료된다.
해당 조건을 만족하는 모든 요소의 반환이 필요할 경우 filter(); 사용.
array.prototype.filter(); | 원본 유지 | 해당 array 요소 모두 반환 |
해당 조건을 만족하는 모든 요소의 반환이 필요할 경우 filter(); 사용.
함수가 true가 되는 요소를 모아서 반환해줌.
filter(callbackFn(value, index, array){ };)
filter(callbackFn, thisArg)
const result3 = students.filter((value) => value.score > 50); // score가 50점 이상을 반환
const result2 = students.filter((value) => value.enrolled); // enrolled가 true인 요소 반환
따라서, 여러가지 조건을 쓰고싶을 경우,
if , else if 문으로 조건을 정한 뒤, 필요한 조건은 true, 버릴 조건은 false로 return해서 조건을 설정할 수 있다.
array.prototype.some(); | 원본 유지 | true/false 반환 |
해당 조건에 한개라도 만족하면 true 반환함.
let result4 = students.some((o) => o.score < 50);
console.log(result4);
array.prototype.every(); | 원본 유지 | true/false 반환 |
해당 조건이 모두 만족하면 true 반환함.
let result4 = students.every((o) => o.score >= 50);
console.log(result4);
array.prototype.reduce(); | 원본 유지 | 하나의 결과값 반환 |
배열의 각 요소에 대해 함수를 실행하여 하나의 결과값을 반환함.
어떤 배열의 값을 시작점부터 돌면서 누적할 때 쓰는 것임
reduce(callbackFn)
reduce(callbackFn(accumulator, currentValue, currentIndex?, array?), initialValue?권장)
callbackFn은 다음 4가지 인수를 받음.
accumulator | 시작하는 값, initual value와 같음. (이전값) |
currentValue | 계산할 값(initialValue의 다음 값부터) (현재값) |
currentIndex | 계산할 index값 |
array | 현재 배열 src |
initualValue : 숫자만 더하는게 아니므로, 단순한 계산이더라도
0이라는 initual value로 결과값의 형식을 지정해줘야한다.
특히 배열이 비어있는 경우 에러가 발생하므로, 가능한 적어주도록 한다.
const result = students.reduce((prev, curr) => {
console.log('------');
console.log(prev);
console.log(curr);
return prev + curr.score;
const result2 = students.reduce((prev, curr) => prev + curr.score, 0);
console.log(result2);
console.log(result2 / students.length);
array.prototype.reduceRight(); | 원본 유지 | 하나의 결과값 반환 |
reduce와 동일하지만 배열의 제일 뒤부터 시작함.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight