728x170
해당 글의 목적은 배열에 대한 반복문으로써 필요한 데이터에 대해 도출해 내는 함수에 대해서 공부하는 목적으로 작성하였습니다.
루프와 반복 함수 요약본
함수 | 설명 | 함수 반환값 | 반복문 return 값 | 추가 시점 |
for | 배열내에서 객체를 반환받기 위해서 순회를 하는 함수이다. | undefined | 속성(key), 속성값(value) 반환 | ES5 이전 |
for/in | 배열내에서 객체값을 반환받기 위해서 순회를 하는 함수이다. | undefined | 속성값(value) 반환 | ES5 이전 |
for/of | 배열내에서 객체를 반환받기 위해서 순회를 하는 함수이다. (배열 뿐만 아니라 이터러블한 객체를 모두 순회할 수 있음) |
undefined | 속성(key), 속성값(value) 반환 | ES6 |
forEach | 배열내에서 객체를 반환받기 위해서 순회를 하는 함수이다. | undefined | 속성(key), 속성값(value) 반환 | ES6 |
map | 배열내에서 특정 조건에 해당하는 값만 도출 혹은 제외하여 재 가공된 배열로 받환 받기 위해서 사용하는 함수이다. |
조건에 만족하는 ‘배열 값’ 혹은 ‘빈 배열’ | 속성(key), 속성값(value) 반환 | ES6 |
filter | 배열내에서 특정 조건에 해당하는 값만 도출 혹은 제외하여 재 가공된 배열로 받환 받기 위해서 사용하는 함수이다. |
조건에 만족하는 ‘배열 값’ 혹은 ‘빈 배열’ | 속성(key), 속성값(value) 반환 | ES6 |
1) for
💡 배열 내에서 객체를 반환받기 위해서 순회를 하는 함수이다. 반복 순회하면서 ‘속성’ 및 '속성 값’을 반환해준다.
구조
for ([initialization]; [condition]; [final-expression]){
statement
}
initialization
식(할당식 포함) 또는 변수 선언. 주로 카운터 변수를 초기화할 때 사용합니다.
var 또는 let 키워드를 사용해 새로운 변수를 선언할 수도 있습니다.
condition
매 반복마다 평가할 식. 평가 결과가 참이라면 statement를 실행합니다.
이 식을 넣지 않았을 때 계산 결과는 언제나 참이 됩니다. 계산 결과가 거짓이라면 for 문의 바로 다음 식으로 건너뜁니다.
final-expression
매 반복 후 평가할 식. 다음번 condition 평가 이전에 발생합니다. 주로 카운터 변수를 증감하거나 바꿀 때 사용합니다.
statement
조건의 평가 결과가 참일 때 실행하는 문. 여러 문을 반복 실행하려면 블록 문({... })으로 묶어야 합니다.
아무것도 실행하지 않으려면 공백 문(;)을 사용하세요.
return (함수 반환 값)
undefined 값을 반환한다.
사용 예제
const userAge = [ 29, 30, 31, 32 ];
for (let i = 0; i < userAge.length; i++) {
console.log(userAge[i]); // 29 , 30 , 31, 32를 순차적으로 반환
}
const userInfo = [{
userId: "adjh54",
userAge: 29
},
{
userId: "ckask123",
userAge: 30
}];
for (let j = 0; j < userInfo,length; j++) {
console.log(userInfo[j]) // Object를 순차적으로 반환
}
// Error :: Unexpected token 'for'
const forStatement = for (let i = 0; i < userAge.length; i++) { return userAge[i]; }
2) for/in
💡 배열 내에서 객체를 반환받기 위해서 순회를 하는 함수이다. 반복문을 순회하면서 ‘속성 값’을 반환해준다.
구조
for (variable in object) {
...
}
variable
매번 반복마다 다른 속성 이름(Value name)이 변수(*variable)*로 지정됩니다.
object
반복 작업을 수행할 객체로 열거형 속성을 가지고 있는 객체.
return (함수 반환 값)
undefined 값을 반환한다.
사용 예제
const userAge = [ 29, 30, 31, 32 ];
for (let item in userAge) {
console.log(item); // 29 , 30 , 31, 32를 순차적으로 반환
}
const userInfo = [{
userId: "adjh54",
userAge: 29
},
{
userId: "ckask123",
userAge: 30
}];
for (let userItem in userInfo) {
console.log(userItem) // Object를 순차적으로 반환
}
// Unexpected token 'for'
const forStatement = for (let item in userAge) {
console.log(item)
}
3) for/of
💡 배열 내에서 객체를 반환받기 위해서 순회를 하는 함수이다. 이외에 반복 가능한 객체(Iteratable Object)에 대해서도 순회를 할 수 있다는 점이 있다. 반복문을 순회하면서 ‘속성값’을 반환해준다.
반복가능한 객체(=리터럴 객체, Iteratable Object) 란?
Array, Map, Set, String, TypedArray, arguments 객체 등이 이에 해당이 되며,
이 객체들에 대해서 순회를 돌면서 각각의 값을 가져올 수 있다.
구조
for (variable of iterable) {
statement
}
variable
각 반복에 서로 다른 속성 값이 variable에 할당됩니다.
iterable
반복되는 열거 가능(enumerable)한 속성이 있는 객체.
return (함수 반환 값)
undefined 값을 반환한다.
사용 예제
// Array 순회
const arrayObj = [ 29, 30, 31, 32 ];
for (let arrItem of arrayObj){
console.log(arrItem); // 29 , 30 , 31, 32를 순차적으로 반환
}
// String 순회
const stringObj = "adjh54";
for(let strItem of stringObj){
console.log(strItem); // "a", "d", "j', "h", "5", "4"를 순차적으로 반환
}
// Map 순회
let mapObj = new Map([["a", 1], ["b", 2], ["c", 3]]);
for(let mapItem of mapObj){
console.log(mapItem); // [a,1], [b,2], [c,3]를 순차적으로 반환
}
// Array Object 순회
const userInfo = [{
userId: "adjh54",
userAge: 29
},
{
userId: "ckask123",
userAge: 30
}];
for (let userItem in userInfo) {
console.log(userItem) // Object를 순차적으로 반환
}
// Unexpected token 'for'
const forStatement = for (let item of userAge) {
console.log(item)
}
4) forEach
💡 배열 내에서 객체를 반환받기 위해서 순회를 하는 함수이다. 반복문을 순회하면서 ‘속성 값’을 반환해준다.
구조
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
callback
각 요소에 대해 실행할 함수. 다음 세 가지 매개변수를 받습니다.
currentValue
처리할 현재 요소.
index (Optional)
처리할 현재 요소의 인덱스.
array (Optional)
forEach()를 호출한 배열.
thisArg (Optional)
callback을 실행할 때 this로 사용할 값.
사용 예제
const items = ['item1', 'item2', 'item3'];
// ES5
items.forEach(function(item){
console.log(item);
});
// ES6
items.forEach((item) => {
console.log(item);
});
// result: undefined
const list = items.forEach((item) =>{
return item + "A"
});
5) map
배열 내에서 특정 조건에 해당하는 값만 도출 혹은 제외하여 재 가공된 배열로 반환 받기 위해서 사용하는 함수이다.
구조
arr.map(callback(currentValue[, index[, array]])[, thisArg])
callback
새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가집니다.
currentValue
처리할 현재 요소.
index (Optional)
처리할 현재 요소의 인덱스.
array (Optional)
map()을 호출한 배열.
thisArg (Optional)
callback을 실행할 때 this로 사용되는 값.
return (함수 반환 값)
배열의 각 요소에 대해 실행한 callback의 결과를 모은 새로운 배열.
사용 예제
const array1 = [1, 4, 9, 16];
// pass a function to map
const map1 = array1.map(x => x * 2);
console.log(map1);
// expected output: Array [2, 8, 18, 32]
6) filter
💡 배열 내에서 특정 조건에 해당하는 값만 도출 혹은 제외하여 재 가공된 배열로 반환 받기 위해서 사용하는 함수이다.
구조
arr.filter(callback(element[, index[, array]])[, thisArg])
callback
각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버립니다. 다음 세 가지 매개변수를 받습니다.
element
처리할 현재 요소.
index (Optional)
처리할 현재 요소의 인덱스.
array Optional
filter를 호출한 배열.
thisArg Optional
callback을 실행할 때 this로 사용하는 값.
return (함수 반환 값)
테스트를 통과한 요소로 이루어진 새로운 배열. 어떤 요소도 테스트를 통과하지 못했으면 빈 배열을 반환합니다.
사용 예제
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
const result = words.filter(word => word.length > 6);
console.log(result);
// expected output: Array ["exuberant", "destruction", "present"]
오늘의 결론
💡 각각 상황에 맞는 루프와 반복 함수를 선택하여서 알맞게 사용하자.
감사합니다😀
그리드형
'Javascript & Typescript > 이해하기' 카테고리의 다른 글
[TS] 타입스크립트(Typescript) 이해하기-1 (정의, 동작원리, 특징) (0) | 2022.03.17 |
---|---|
[JS] Promise 이해하기 -2 (Promise 체이닝, Promise.all, async/await) (0) | 2022.03.13 |
[JS] Promise 이해하기 -1 (콜백함수, 정의, 요청상태) (0) | 2022.03.12 |
[JS] ES5 / ES6(ECMAScript 2015) 이해하기 (0) | 2022.01.11 |
[JS] 변수(Variable) 이해하기 (0) | 2022.01.09 |