연구실(키네틱) 프로젝트

eval 함수 변환 기록

FireStone 2020. 9. 21. 15:21

 eval 함수는 보안상 위험할 수 있기 때문에 사용하지 않는 것을 권장한다고 함

 

- 이전 코드

 for (var p1 = 0; p1 < len_target; p1++) {
      eval('var NewArray' + p1 + ' = new Array();');
      var pk = 0;
      //같은 target을 기준으로 delay, duration, func(motion)이 들어감->모션갯수만큼
      for (var p2 = 0; p2 < len_array; p2++) {
         if (getTarget[p1] == genArray[p2].func.target) {
            eval('NewArray' + p1 + '[' + pk + ']=' + 'genArray[p2]' + ';');
            pk++;
         }
      }
   }

NewArray를 targetArr로 바꿈

자바스크립트가 배열 넣기는 진짜 편한 것 같다..

1)tempArr에 같은 객체에 들어가는 모션의 정보를 골라 삽입한다.

2)tempArr을 targetArr[i]에 넣어주면 같은 target(같은 텍스트 객체)에 들어가는 모션을 저장할 수 있다.

=> targetArr[i]=tempArr 이렇게만 써주면 잘들어감

var targetArr = new Array();
     for (var p1 = 0; p1 < len_target; p1++) {
        var pk = 0;
        //같은 target을 기준으로 delay, duration, func(motion)이 들어감->모션갯수만큼
        var tempArr = new Array();
        for (var p2 = 0; p2 < len_motion; p2++) {
           if (getTarget[p1] == motion_data_arr[p2].func.target) {
             tempArr.push(motion_data_arr[p2]);
           }
        }
          targetArr[p1]=tempArr;
     }
     //console로 확인 - 우선 두개만 확인해봤다
     console.log("target");
     console.log(targetArr[0]);
     console.log(targetArr[1]);

 

console 결과