안녕하세요 Humanscape 개발자 Jake입니다.
Javascript 개발시 복수형 자료를 다루시나요? 복수형 자료를 다룰때 효율적으로 사용할 수 있는 함수 몇가지( for, for in, for of, forEach, filter, reduce)에 대해서 알아보도록 하겠습니다.
for
for 문은 세미콜론으로 구분한 초기화, 조건문, 증감식과 반복 수행문으로 이루어져 있습니다.
for in
for in 문은 객체의 enumerable properties, object inherits from its constructor’s prototype를 반복합니다.
for in 은 객체반복에 적합하며 배열 반복에는 적합하지 않습니다. 배열의 반복순서는 구현에 따라 다르기 때문에 for in 을 사용할시에 순차적으로 index에 접근한다는 보장이 없습니다.
for in 사용시 object inherits from its constructor’s prototype 에 접근할 수 있는데 객채 스스로 정의한 프로퍼티만를 확인하고 싶다면obj.hasOwnProperty(value)를 사용합니다.
for of
for of 문은 반복가능한 객체(Array, Map, Set, String, TypedArray 등)에 대해서 반복하고 각 개별 속성 값을 다룹니다.
forEach
forEach는 함수형태로 배열요소에 대해 순환합니다.
forEach 구문 callback은 각 요소에 대해 오름차순으로 한번씩 실행되며 삭제되거나 초기화하지 않은 인덱스 속성에 대해서는 실행하지 않습니다.
callback은 요소값, 요소 인덱스, 순회중인 배열과 함께 호출되며 callback은 배열을 변경할 수 있습니다. ( forEach 구문은 배열을 변경할 수 없고 return 또한 undefined를 반환합니다 )
array전체를 순회한다고 했을때 for구문을 작성하는것 보다 심플하고 가독성이 좋다는 점이 있습니다.
filter
filter는 사용자가 정의한 조건을 만족하는 요소를 반환합니다.
filter는 호출되는 배열을 변화시키지 않으며 조건에 만족하는 요소들로 새로운 배열을 반환합니다. 만약 조건을 만족하지 못한다면 빈배열을 return 합니다.
map
map은 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
reduce
reduce는 호출되는 배열에서 callback(리듀서함수)을 수행하며 accumulator(누산값)을 반환합니다.
지금까지 Javascript에서 복수형 자료를 다루는 방법에 대해서 알아보았습니다. 소개드린 내용외에도 문법, 성능등에 대해서도 공부해보시면 좋을것 같습니다. 감사합니다.
참고: https://developer.mozilla.org/ko/docs/Web/JavaScript
Get to know us better!
Join our official channels below.
Telegram(EN) : t.me/Humanscape
KakaoTalk(KR) : open.kakao.com/o/gqbUQEM
Website : humanscape.io
Medium : medium.com/humanscape-ico
Facebook : www.facebook.com/humanscape
Twitter : twitter.com/Humanscape_io
Reddit : https://www.reddit.com/r/Humanscape_official
Bitcointalk announcement : https://bit.ly/2rVsP4T
Email : support@humanscape.io