반응형
동적으로 변수명을 생성할 일이 있었다.
var key = "func";
for(var i=0; i<arguments.length; i++)
{
eval("let "+key+""+i+"= "+arguments[i]);
}
javascript 에서 변수선언시
let test + i
이런식으로 동적생성이 불가능하니 예시처럼 eval 함수를 사용하였다.
eval(string) 함수는 string으로 표현된 문자열을 javascript 코드로 실행할 수 있도록 해주는 함수다.
물론 사용을 지양 하는 것이 좋다. 저렇게 하면 당연히 코드 해석하기도 어려우니... 그런데 딱히 생각나지 않아서 사용하긴했다.
위 코드를 해석하자면 function 에 파라미터 개수를 동적으로 받아와서 해당 파라미터들 개수만큼 func0, func1 ... 이런식으로 변수를 생성하도록 만든코드이다.
arguments 가
eval 속 string 은 let func0 = argument[0]; 이런식으로 만들어지며 변수가 생성되도록 하였다.
근데 왜 저렇게 했었는지는 기억이 나지않는다...
이제 와서 다르게 코드를 짜보면 이렇게 짤 것이다.
let testObj = {};
for (let i = 1; i <= 10; i++) {
let objName = 'name' + i;
let objValue = i;
// 동적으로 변수를 객체에 할당
testObj[objName] = objValue;
}
//출력
for (let key in testObj){
console.log(testObj[key]);
}
객체를 사용하여 만들었다.
배열을 사용한 방법도 있다
let testArr = [];
for (let i = 1; i <= 10; i++) {
// 배열에 숫자를 추가
testArr.push(i);
}
for (let i = 0; i < testArr.length; i++) {
console.log(testArr[i]);
}
옛날에 네이버 블로그에 썼던 글을 정리하면서 옮기는 중인데 3년전의 나는 왜 저랬을지 모르겠다.
반응형
'자바스크립트(jquery)' 카테고리의 다른 글
javascript var? let? const? (0) | 2024.03.21 |
---|---|
javascript로 만든 jquery empty (0) | 2024.03.21 |
window/document , on/ready (0) | 2024.03.21 |
javascript sleep 함수 (0) | 2024.03.21 |
Jquery 엑셀다운로드 (0) | 2024.03.21 |