본문 바로가기
Web/JAVASCRIPT

Select 3 : forEach, for in 반복문

by print_soo 2023. 7. 31.

우선 이전에 만들었던 코드는 사이즈가 늘어나거나 변경되면 그때마다 태그를 추가해주어야한다. 

따라서 서버에서 데이터를 받았다고 가정하여 for 반복문을 통해서 줄여보자.

 

반복문 for으로 확장성 있는 코드 만들기

 

이전 코드

function changeSelect() {
    var selectedProduct = $('.form-select').eq(0).val();
    if (selectedProduct == '셔츠') {
        $('.form-select').eq(1).removeClass('form-hide');
        $('.form-select').eq(1).html('');
        $('.form-select').eq(1).append("<option>95</option>", "<option>100</option>", "<option>105</option>", "<option>110</option>")
    } else if (selectedProduct == '바지') {
        $('.form-select').eq(1).removeClass('form-hide');
        $('.form-select').eq(1).html('');
        $('.form-select').eq(1).append("<option>28</option>", "<option>30</option>", "<option>32</option>", "<option>34</option>")
    } else {
        $('.form-select').eq(1).addClass('form-hide');
    }
}

 

변경 코드

// 서버에서 받은 데이터라고 가정
var shirts = [95, 100, 105, 110];
var pants = [28, 30, 32];

function changeSelect() {
    var selectedProduct = $('.form-select').eq(0).val();
    if (selectedProduct == '셔츠') {
        $('.form-select').eq(1).removeClass('form-hide');
        $('.form-select').eq(1).html('');
        for (let i = 0; i < shirts.length; i++) {
            $('.form-select').eq(1).append('<option>'+shirts[i]+'</option>');
        }
    } else if (selectedProduct == '바지') {
        $('.form-select').eq(1).removeClass('form-hide');
        $('.form-select').eq(1).html('');
        for (let i = 0; i < pants.length; i++) {
            $('.form-select').eq(1).append('<option>'+pants[i]+'</option>');
        }

        
    } else {
        $('.form-select').eq(1).addClass('form-hide');
    }
}

for문을 이용해서 현재 받아온 데이터 수만큼 반복하여 배열에 있는 데이터를 옵션에 추가하였다.

 


forEach

: Array에만 붙일 수 있는 반복문이다. 

 

사용법1

: Array의 요소의 수 만큼 반복한다.

var shirts = [95, 100, 105, 110];
shirts.forEach(function() {
	console.log(1)
}

// 결과 1 1 1 1

 

 

 

사용법2

: 콜백함수에 매개변수를 두고 해당 매개변수를 출력하면 요소를 순서대로 출력한다.

var shirts = [95, 100, 105, 110];
shirts.forEach(function(a) {
	console.log(a)
}

// 결과 95 100 105 110

var shirts = [95, 100, 105, 110];
shirts.forEach(function(a,i) {
	console.log(a,i)
}

// 결과 95,0 100,1 105,2 110,3

// a는 요소 데이터 i는 요소 인덱스

 

 

응용

pants.forEach(function(a) {
    $('.form-select').eq(1).append('<option>'+a+'</option>')});

 


for in

object에 사용할 수 있는 반복문 

 

// 기본 형태
var obj = { name : 'kim', age : 20 }

for (var key in obj){
  console.log('안녕')
}

// 출력: 안녕 안녕

// ------------------------------------

// 사용법 1

var obj = { name : 'kim', age : 20 }

for (var key in obj){
  console.log(key)
}

// 출력: name age

// ------------------------------------

// 사용법 2

var obj = { name : 'kim', age : 20 }

for (var key in obj){
  console.log(obj[key])
}

// 출력: kim 20

 

 

반복문의 용도

1. 코드를 반복할 때
2. array, object 데이터를 전부 꺼낼때

'Web > JAVASCRIPT' 카테고리의 다른 글

Ajax  (0) 2023.07.31
arrow function 문법  (0) 2023.07.31
Select 2 : 자바스크립트로 html 생성하는 법  (0) 2023.07.31
Select 1: 인풋 다루기  (0) 2023.07.31
Array 와 Object  (0) 2023.07.31