JS 반복문들 대표예제 50개

dowon kim·2023년 6월 20일
0
post-thumbnail

for

// 예제 1: 숫자 배열 합계
let nums = [1, 2, 3, 4, 5];
let sum = 0;
for (let i = 0; i < nums.length; i++) {
  sum += nums[i];
}
console.log(sum);  // 출력: 15


// 예제 2: 2차원 배열
let matrix = [[1, 2], [3, 4], [5, 6]];
for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    console.log(matrix[i][j]);  // 출력: 1, 2, 3, 4, 5, 6
  }
}


// 예제 3: 문자열 각 문자 출력
let str = 'Hello';
for (let i = 0; i < str.length; i++) {
  console.log(str[i]);  // 출력: H, e, l, l, o
}


// 예제 4: 배열 내 원소들의 제곱값 출력
let arr = [1, 2, 3, 4, 5];
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i] ** 2);  // 출력: 1, 4, 9, 16, 25
}


// 예제 5: 배열 내 짝수값만 출력
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
for (let i = 0; i < numbers.length; i++) {
  if (numbers[i] % 2 === 0) {
    console.log(numbers[i]);  // 출력: 2, 4, 6, 8, 10
  }
}

for...in

// 예제 1: 객체 속성 출력
let obj = {a: 1, b: 2, c: 3};
for (let prop in obj) {
  console.log(`${prop}: ${obj[prop]}`);  // 출력: a: 1, b: 2, c: 3
}


// 예제 2: 객체에 있는 메서드 실행
let objWithMethods = {
  a: function() { console.log('A!'); },
  b: function() { console.log('B!'); },
  c: function() { console.log('C!'); },
};
for (let method in objWithMethods) {
  objWithMethods[method]();  // 출력: 'A!', 'B!', 'C!'
}


// 예제 3: 배열 인덱스와 값 출력
let arr = ['Apple', 'Banana', 'Cherry'];
for (let index in arr) {
  console.log(`index: ${index}, value: ${arr[index]}`);  // 출력: index: 0, value: Apple, ...
}


// 예제 4: 사용자 정의 객체
function Person(first, last, age) {
  this.firstName = first;
  this.lastName = last;
  this.age = age;
}
let myFather = new Person("John", "Doe", 50);
for (let property in myFather) {
  console.log(property + " : " + myFather[property]);  // 출력: firstName : John, ...
}


// 예제 5: for...in을 이용한 배열 요소 복사
let original = [1, 2, 3, 4, 5];
let copy = [];
for (let index in original) {
  copy[index] = original[index];
}
console.log(copy);  // 출력: [1, 2, 3, 4, 5]

for...of

// 예제 1: 배열 요소 출력
let fruits = ['apple', 'banana', 'cherry'];
for (let fruit of fruits) {
  console.log(fruit);  // 출력: apple, banana, cherry
}


// 예제 2: 문자열 각 문자 출력
let str = 'Hello';
for (let char of str) {
  console.log(char);  // 출력: H, e, l, l, o
}


// 예제 3: Map 객체의 값 출력
let map = new Map();
map.set('a', 1);
map.set('b', 2);
map.set('c', 3);
for (let value of map.values()) {
  console.log(value);  // 출력: 1, 2, 3
}


// 예제 4: Set 객체의 값 출력
let set = new Set([1, 2, 3, 4, 5]);
for (let value of set) {
  console.log(value);  // 출력: 1, 2, 3, 4, 5
}


// 예제 5: arguments 객체의 값 출력
function printArguments() {
  for (let arg of arguments) {
    console.log(arg);
  }
}
printArguments('a', 'b', 'c');  // 출력: a, b, c

while

// 예제 1: 숫자 배열 합계
let nums = [1, 2, 3, 4, 5];
let sum = 0;
let i = 0;
while (i < nums.length) {
  sum += nums[i];
  i++;
}
console.log(sum);  // 출력: 15


// 예제 2: 문자열 각 문자 출력
let str = 'Hello';
let j = 0;
while (j < str.length) {
  console.log(str[j]);  // 출력: H, e, l, l, o
  j++;
}


// 예제 3: 카운트다운
let countdown = 5;
while (countdown > 0) {
  console.log(countdown);  // 출력: 5, 4, 3, 2, 1
  countdown--;
}


// 예제 4: 배열 내 원소들의 제곱값 출력
let arr = [1, 2, 3, 4, 5];
let k = 0;
while (k < arr.length) {
  console.log(arr[k] ** 2);  // 출력: 1, 4, 9, 16, 25
  k++;
}


// 예제 5: 배열 내 짝수값만 출력
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let l = 0;
while (l < numbers.length) {
  if (numbers[l] % 2 === 0) {
    console.log(numbers[l]);  // 출력: 2, 4, 6, 8, 10
  }
  l++;
}

do...while

// 예제 1: 숫자 배열 합계
let nums = [1, 2, 3, 4, 5];
let sum = 0;
let i = 0;
do {
  sum += nums[i];
  i++;
} while (i < nums.length);
console.log(sum);  // 출력: 15


// 예제 2: 문자열 각 문자 출력
let str = 'Hello';
let j = 0;
do {
  console.log(str[j]);  // 출력: H, e, l, l, o
  j++;
} while (j < str.length);


// 예제 3: 카운트다운
let countdown = 5;
do {
  console.log(countdown);  // 출력: 5, 4, 3, 2, 1
  countdown--;
} while (countdown > 0);


// 예제 4: 배열 내 원소들의 제곱값 출력
let arr = [1, 2, 3, 4, 5];
let k = 0;
do {
  console.log(arr[k] ** 2);  // 출력: 1, 4, 9, 16, 25
  k++;
} while (k < arr.length);


// 예제 5: 배열 내 짝수값만 출력
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let l = 0;
do {
  if (numbers[l] % 2 === 0) {
    console.log(numbers[l]);  // 출력: 2, 4, 6, 8, 10
  }
  l++;
} while (l < numbers.length);

Array.prototype.forEach()

// 예제 1: 숫자 배열 합계
let nums = [1, 2, 3, 4, 5];
let sum = 0;
nums.forEach(function(num) {
  sum += num;
});
console.log(sum);  // 출력: 15


// 예제 2: 문자열 각 문자 출력
let str = 'Hello';
Array.from(str).forEach(function(char) {
  console.log(char);  // 출력: H, e, l, l, o
});


// 예제 3: 배열 내 원소들의 제곱값 출력
let arr = [1, 2, 3, 4, 5];
arr.forEach(function(num) {
  console.log(num ** 2);  // 출력: 1, 4, 9, 16, 25
});


// 예제 4: 배열 내 짝수값만 출력
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.forEach(function(num) {
  if (num % 2 === 0) {
    console.log(num);  // 출력: 2, 4, 6, 8, 10
  }
});


// 예제 5: 객체 배열의 특정 속성 출력
let people = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
people.forEach(function(person) {
  console.log(person.name);  // 출력: Alice, Bob, Charlie
});

Array.prototype.map()

// 예제 1: 숫자 배열 제곱
let nums = [1, 2, 3, 4, 5];
let squares = nums.map(function(num) {
  return num ** 2;
});
console.log(squares);  // 출력: [1, 4, 9, 16, 25]


// 예제 2: 객체 배열의 특정 속성으로 새 배열 생성
let people = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
let names = people.map(function(person) {
  return person.name;
});
console.log(names);  // 출력: ['Alice', 'Bob', 'Charlie']


// 예제 3: 배열의 모든 요소를 문자열로 변환
let numbers = [1, 2, 3, 4, 5];
let strings = numbers.map(function(number) {
  return number.toString();
});
console.log(strings);  // 출력: ['1', '2', '3', '4', '5']


// 예제 4: 길이를 기준으로 새 배열 생성
let fruits = ['apple', 'banana', 'cherry'];
let lengths = fruits.map(function(fruit) {
  return fruit.length;
});
console.log(lengths);  // 출력: [5, 6, 6]


// 예제 5: 객체 배열의 특정 속성 갱신
let persons = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
let updatedPersons = persons.map(function(person) {
  return {...person, age: person.age + 1};
});
console.log(updatedPersons);  // 출력: [{name: 'Alice', age: 21}, {name: 'Bob', age: 26}, {name: 'Charlie', age: 31}]

Array.prototype.filter()

// 예제 1: 짝수만 필터링
let nums = [1, 2, 3, 4, 5];
let evens = nums.filter(function(num) {
  return num % 2 === 0;
});
console.log(evens);  // 출력: [2, 4]


// 예제 2: 긴 단어만 필터링
let words = ['apple', 'banana', 'cherry', 'do'];
let longWords = words.filter(function(word) {
  return word.length > 4;
});
console.log(longWords);  // 출력: ['apple', 'banana', 'cherry']


// 예제 3: 특정 범위의 숫자만 필터링
let numbers = [1, 10, 20, 30, 40];
let inRange = numbers.filter(function(number) {
  return number > 10 && number < 40;
});
console.log(inRange);  // 출력: [20, 30]


// 예제 4: 객체 배열에서 특정 조건을 만족하는 객체만 필터링
let people = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
let oldEnough = people.filter(function(person) {
  return person.age >= 25;
});
console.log(oldEnough);  // 출력: [{name: 'Bob', age: 25}, {name: 'Charlie', age: 30}]


// 예제 5: 문자열 배열에서 특정 문자를 포함하는 요소만 필터링
let strings = ['Hello', 'World', 'JavaScript', 'Fun'];
let withJ = strings.filter(function(str) {
  return str.includes('J');
});
console.log(withJ);  // 출력: ['JavaScript']

Array.prototype.reduce()

// 예제 1: 숫자 배열 합계
let nums = [1, 2, 3, 4, 5];
let sum = nums.reduce(function(total, num) {
  return total + num;
}, 0);
console.log(sum);  // 출력: 15


// 예제 2: 가장 큰 숫자 찾기
let numbers = [1, 10, 20, 30, 40];
let maxNum = numbers.reduce(function(max, num) {
  return Math.max(max, num);
}, numbers[0]);
console.log(maxNum);  // 출력: 40


// 예제 3: 배열의 중복 요소 제거
let duplicates = [1, 2, 2, 3, 4, 4, 5];
let unique = duplicates.reduce(function(unique, num) {
  if (!unique.includes(num)) {
    unique.push(num);
  }
  return unique;
}, []);
console.log(unique);  // 출력: [1, 2, 3, 4, 5]


// 예제 4: 객체 배열에서 특정 속성의 합계
let people = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
let totalAge = people.reduce(function(total, person) {
  return total + person.age;
}, 0);
console.log(totalAge);  // 출력: 75


// 예제 5: 문자열 배열을 하나의 문자열로 병합
let words = ['Hello', 'World', 'JavaScript', 'Is', 'Fun'];
let sentence = words.reduce(function(sentence, word) {
  return sentence + ' ' + word;
}, '');
console.log(sentence.trim());  // 출력: 'Hello World JavaScript Is Fun'

Array.prototype.every() 와 Array.prototype.some()

// 예제 1: every를 사용하여 모든 요소가 짝수인지 확인
let nums = [2, 4, 6, 8, 10];
let allEven = nums.every(function(num) {
  return num % 2 === 0;
});
console.log(allEven);  // 출력: true


// 예제 2: some을 사용하여 배열에 특정 요소가 존재하는지 확인
let strings = ['Hello', 'World', 'JavaScript', 'Is', 'Fun'];
let hasJS = strings.some(function(str) {
  return str === 'JavaScript';
});
console.log(hasJS);  // 출력: true


// 예제 3: every를 사용하여 객체 배열의 모든 요소가 특정 조건을 만족하는지 확인
let people = [{name: 'Alice', age: 20}, {name: 'Bob', age: 25}, {name: 'Charlie', age: 30}];
let allOldEnough = people.every(function(person) {
  return person.age >= 20;
});
console.log(allOldEnough);  // 출력: true


// 예제 4: some을 사용하여 객체 배열에서 특정 조건을 만족하는 요소가 있는지 확인
let numbers = [{num: 1}, {num: 2}, {num: 3}, {num: 4}];
let hasThree = numbers.some(function(item) {
  return item.num === 3;
});
console.log(hasThree);  // 출력: true


// 예제 5: every를 사용하여 배열의 모든 요소가 특정 타입인지 확인
let mixed = [1, '2', 3, '4', 5];
let allNumbers = mixed.every(function(item) {
  return typeof item === 'number';
});
console.log(allNumbers);  // 출력: false
profile
The pain is so persistent that it is like a snail, and the joy is so short that it is like a rabbit's tail running through the fields of autumn

0개의 댓글