본문 바로가기
JavaScript

[JavaScript] Arrays - 03 ()

by 박헹구 2022. 4. 1.
반응형

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);

 

반응형

댓글