본문 바로가기

JavaScript

[javascript] jason 에서 동적 값 밀어넣기

가령

var searchAttr = {
    attr_0 : ,
    attr_1 : ,
    attr_2 : ,
    attr_3 :
}

이렇게 선언되어 있고, 해당 값에 세팅해주는 값들이 동적이라면

var attrs = new Array();
attrs.push("난 0번이야~");
attrs.push("난 1번이야~");
..

생각은

searchAttr.attr_0 = attrs[0];
searchAttr.attr_1 = attrs[1];

를 하고 싶을때.. 루프에 대한 고민이......... 생각한 방법은
eval("searchAttr.attr_"+i) = attrs[i]; or searchAttr.eval("attr_"+i) = attrs[i];
하지만 실패했다...

좀 더 고민해 보니 javascript JSON이 ...
attrs.each(function(attr, index){
    key = "attr_"+index;
    searchAttr[key] = attr;
});

이렇게 하니 간단하게..

물론 searchAttr에서 변수선언을 다르게 할 수도 있겠다는 생각도 들었지만 서도..


참고 : each : prototype.js를 참조하세요.