수행시간 비교: 기본 for loop < forEach < for of < for in
기본 for loop가 가장 빠릅니다.
Example
기본 for loop 사용: 3.799ms
for in loop 사용: 359.135ms
forEach 사용: 21.931ms
for of 사용: 26.932ms
function Loop1(nList) {
let total = 0;
for (let i = 0; i < nList.length; i++) {
total += nList[i];
}
return total;
}
function Loop2(nList) {
let total = 0;
for (const num in nList) {
total += num;
}
return total;
}
function Loop3(nList) {
let total = 0;
nList.forEach((num) => {
total += num;
});
return total;
}
function Loop4(nList) {
let total = 0;
for (const num of nList) {
total += num;
}
return total;
}
let n = 1000000;
let nList = new Array();
for (let i = 1; i <= n; i++) {
nList.push(i);
}
console.time("기본 for loop 사용");
Loop1(nList);
console.timeEnd("기본 for loop 사용");
console.time("for in loop 사용");
Loop2(nList);
console.timeEnd("for in loop 사용");
console.time("for Each 사용");
Loop3(nList);
console.timeEnd("for Each 사용");
console.time("for of 사용");
Loop4(nList);
console.timeEnd("for of 사용");
1. forEach 문은 배열에서만 사용이 가능합니다.
2. for in 문은 모든 객체에서 사용이 가능하지만 key에만 접근합니다. value는 key를 사용해 접근해야 합니다.
3. for of 문은 컬렉션 개체가 [Symbol.iterator] 속성]을 가져야 합니다.
let sample = [1, 2, 3, 4, 5];
sample.Case = "I'am in the Cafe";
for (const key in sample) {
if (sample.hasOwnProperty(key)) {
console.log(key, sample[key]);
}
}
// 0 1
// 1 2
// 2 3
// 3 4
// 4 5
// Case I'am in the Cafe
for (const iterator of sample) {
console.log(iterator);
}
// 1
// 2
// 3
// 4
// 5
'코딩 테스트 > 알고리즘' 카테고리의 다른 글
Problem Solving Approach (0) | 2020.07.09 |
---|---|
자바스크립트. 문자 세기 (0) | 2020.07.08 |
자바스크립트. 정렬 순서 (0) | 2020.07.04 |
Analyzing Performance of Arrays and Objects (0) | 2020.07.04 |
Big O Notation (0) | 2020.07.02 |