[TIL 1/29]

i do as i say·2020년 1월 29일
0

Array.forEach() - IMMUTABE

forEach 메서드는 자바스크립트 자체에서 for문을 함수로 정의를 해 준 아주 고맙고 편리한 메소드다. 주어진 함수를 배열의 요소 각각에 대해 오름차순으로 실행해 준다.

filter 함수와 마찬가지로, 주어진 함수를 사용해야 하므로 콜백 함수를 사용한다. 또, 콜백 함수의 쓰임에 따라서 이 메서드를 쓰는 방식이 살짝씩 달라진다.

구문은 이렇다.

  • arr.forEach(callback(currentValue[, index[,array]])[,this Arg])

callback - 주어진 함수
currentValue - 처리할 현재 요소
index - 처리할 현재 요소의 인덱스
array - forEach 메서드를 호출한 배열
thisArg - callback을 실행할 때 this의 값

보통 curValue만 쓴다.
값은 undefined로 나온다. (for구문이라고 생각하면 쉽다.)
IMMUTABE 메서드이지만, callback 함수가 바꿀 수도 있다.

for 반복문을 forEach로 바꾸기

let arr = [1, 2, 3, 4];
let copy = [];

for(i=0;i<arr.length;i++) { copy.push(arr[i]); }

↓

arr.forEach(function (item) { copy.push(item); }
//item이 arr[i]가 되는 것.

Array.every와 some

every와 some 메소드는 주어진 함수를 통과하는지 하지 않는지를 불리언 값으로 나타낸다.

every() 메소드는 배열의 요소 모두가 주어진 함수의 테스트를 통과해야 true를 반환하고, 요소 중 하나라도 통과하지 않는다면 그 즉시 false를 반환한다.

some() 메소드는 배열의 요소 중 하나라도 테스트를 통과한다면 그 즉시 true를 반환한다. 전부 통과하지 않을 시에만 false를 반환한다.

구문은 비슷하다.

  • arr. every(callback(currentValue[,index[,array]])[,thisArg])

  • arr.some(callback(currentValue[,index[,array]])[,thisArg])

arr = [1, 2, 20];
arr.every(x => x>10); //false
arr.some(x => x<10); //true

mocha / chai

  • mocha는 함수를 통한 테스트
  • chai는 테스트를 돌릴 때 조금 더 영어 문법적으로 다가갈 수 있게 하는 라이브러리
profile
커신이 고칼로리

0개의 댓글