상세 컨텐츠

본문 제목

[JavaScript] 인자 개수 만큼 반복문 실행

Coding/JS

by hwlink 2021. 11. 4. 18:00

본문

자바스크립트 인자개수만큼 반복문에 대하여 정리하려고 한다.

 

1. for 문을 인자인 saleArr, reviewArr, likeArr 들의 각각 length만큼 반복문을 돌려줬다.

function getData(salesArr, reviewArr, likeArr){
  let dateTotalSales = 0;
  let dateTotalReview = 0;
  let dateTotalLike = 0;
  for(let i = 0; i<saleArr.length; i++){
    dateTotalSales += salesArr[i][1];
  }
  for(let i = 0; i<reviewArr.length; i++){
  	dateTotalReview += reviewArr[i][1];
  }
  for(let i = 0; i<likeArr.length; i++){
    dateTotalLike += likeArr[i][1];
  }
  let resultObj = {
  	totalSale: dateTotalSales,
  	totalReview: dateTotalReview, 
    totalLike: dateTotalLike};
  return resultObj
}
}

getData([["2021", 1], ["2021", 1], ["2021", 1]],[["2021", 2], ["2021", 2], ["2021", 2]],[["2021", 3], ["2021", 3], ["2021", 3]]);
// 결과: { totalSale: 3, totalReview: 6, totalLike: 9 }

결과는 잘나오나 for문을 3개나 써서 불필요하다고 느껴졌고, 간단히 표현할 방법을 고민중 arguments를 발견했다.

arguments 객체는 함수에 전달된 인수에 해당하는 Array 형태의 객체이다 -MDN

 

argumnets 예시

fun1(인자1,인자2,인자3)을 받아 1, 2, 3을 출력해준다.

function func1(a, b, c) {
  console.log(arguments[0]);
  // expected output: 1

  console.log(arguments[1]);
  // expected output: 2

  console.log(arguments[2]);
  // expected output: 3
}

func1(1, 2, 3);

//결과
1
2
3

 

 

arguments를 하단에 for문 안에서 arguments.length로 적용 해주면 for반복문 1개로 이렇게 간단하게 표현할 수 있다.

 

2.arguments.length

function getData(salesArr, reviewArr, likeArr){
  let dateTotalSales = 0;
  let dateTotalReview = 0;
  let dateTotalLike = 0;
  for(let i = 0; i<arguments.length; i++){
    dateTotalSales += salesArr[i][1];
    dateTotalReview += reviewArr[i][1];
    dateTotalLike += likeArr[i][1];
  }
   let resultObj = {
  	totalSale: dateTotalSales,
  	totalReview: dateTotalReview, 
    totalLike: dateTotalLike};
  return resultObj
}
}

getData([["2021", 1], ["2021", 1], ["2021", 1]],[["2021", 2], ["2021", 2], ["2021", 2]],[["2021", 3], ["2021", 3], ["2021", 3]]);
// 결과: { totalSale: 3, totalReview: 6, totalLike: 9 }

 

관련글 더보기