반응형
Arrays
some
조건이 만족하는 값이 있으면 true 없다면 false를 반환함.
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
console.log(movements);
//정확한 값
console.log(movements.includes(-130)); //true
//조건을 만족하는 값
const anyDeposits = movements.some(mov => mov > 0);
console.log(anyDeposits); //true
Every
배열의 모든 요소가 조건을 만족하는 경우 true를 반환한다.
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
//Every
console.log(movements.every(mov => mov > 0)); //false
const movements1 = [200, 450, 3000, 70, 1300];
console.log(movements1.every(mov => mov > 0)); //true
콜백함수를 따로 지정하는 방법
const movements = [200, 450, -400, 3000, -650, -130, 70, 1300];
const deposit = mov => mov > 0;
console.log(movements.some(deposit)); // true
console.log(movements.every(deposit)); // false
console.log(movements.filter(deposit)); // [200, 450, 3000, 70, 1300]
flat
중첩배열 제거 콜백기능이 없다.
const arr = [[1, 2, 3], [4, 5, 6], 7, 8];
console.log(arr.flat()); // [1, 2, 3, 4, 5, 6, 7, 8]
플랫은 한단계의 중첩배열만 제거하기 때문에 중첩에 중첩인 경우에는 한번만 해주면 아래와 같이 나타나게 된다.
const arrDeep = [[[1, 2], 3], [4, [5, 6]], 7, 8];
console.log(arrDeep.flat()); // [[1, 2, 3], [4, 5, 6], 7, 8]
console.log(arrDeep.flat(2)); // [1, 2, 3, 4, 5, 6, 7, 8]
flat()을 사용했을 때와 flatMap()을 사용했을 때 같은 결과
//flat
const overalBalance = accounts
.map(acc => acc.movements)
.flat()
.reduce((acc, mov) => acc + mov, 0);
console.log(overalBalance);
//flatMap
const overalBalance2 = accounts
.flatMap(acc => acc.movements)
.reduce((acc, mov) => acc + mov, 0);
console.log(overalBalance2);
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] Arrays - 02(forEach, map, filter, reduce, find, findIndex) (0) | 2022.03.31 |
---|---|
[JavaScript] Arrays - 01 (slice, splice, reverce, concat, join, at) (0) | 2022.03.30 |
[JavaScript] Sets (0) | 2022.03.28 |
[JavaScript] 자바스크립트 처음 공부할 때 도움되는 Quokka (0) | 2022.03.28 |
[JavaScript] for ... of (0) | 2022.03.28 |
댓글