JavaScript Array Functions
자바스크립트 배열에는 다양한 함수들이 들어 있습니다.
최근에는 이러한 함수를 사용하는 기법들이 많이 늘어나고 있는데요..
이 글에서는 자바스크립트 배열에 있는 함수들을 살펴보고 구분을 해보았습니다.
구분 기준은 크게 두가지로 "원본 배열 수정 여부"와 "반환값"이 무엇인가에 대해서 입니다.
위의 구분을 사용해서 자바스크립트 배열을 카테고리화 한 것을 살펴보시죠.
1.1 원본 배열을 수정하지만 값을 반환하지는 않는다
forEach( fn_i , thisValue )
for 대신 forEach를 사용해서 각 요소를 순회할 수 있다.
하지만 continue 또는 break 를 사용하려고 하면 어떻게 해야할까?
그때는 아래에 나오는 every 함수를 사용하면 된다.
수행 : 배열의 각 요소를 돌면서 함수 fn 을 수행한다
return : 없음
var result = 0;
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.forEach( currentValue=> { result += currentValue; } );
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // undefined
result // "0abc0123"
reduce( fn_reduce, initValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.reduce( (total, currentValue)=>{ return total + currentValue} );
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // "abc0123"
reduceRight( fn_reduce, initValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.reduceRight( (total, currentValue)=>{ total + currentValue} );
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // "6cba"
fill( value, startIndex, endIndex )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.fill( "xx", 2, 5 );
aa // (8) ["a", "b", "xx", "xx", "xx", 1, 2, 3]
bb // (8) ["a", "b", "xx", "xx", "xx", 1, 2, 3]
map( fn_v , thisValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.map( currentValue => { return currentValue + 9 });
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // (8) ["a9", "b9", "c9", "9", 9, 10, 11, 12]
filter(fn_tf, thisValue)
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.filter( currentValue => { return typeof currentValue == "string" });
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // (4) ["a", "b", "c", ""]
2.2 하나의 값 반환
every( fn_tf, thisValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.every( currentValue => { return typeof currentValue == "string" });
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // false
find( fn_tf, thisValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.find( currentValue => { return typeof currentValue != "string" });
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // 0
findIndex( fn_tf, thisValue )
var aa = ["a", "b", "c", "", 0, 1, 2, 3];
var bb = aa.findIndex( currentValue => { return typeof currentValue != "string" });
aa // (8) ["a", "b", "c", "", 0, 1, 2, 3]
bb // 4
함수들을 카테고리화하여서 사용할때 인자로 사용한 fn_xx 함수들에 대해서 정리 및 요약
없음Boolean 반환값 반환