개발 Q&A

제목 계층형 JSON 만드는 중에 질문하나 드립니다.
카테고리 JavaScript
글쓴이 일용직노동자 작성시각 2017/03/07 19:40:12
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 11727   RSS
 var categoryArray = new Array();
       var categoryInfo = new Object();
       var cnt = ['8', '12', '9', '7', '8', '6', '11', '10', '10', '8'];
       var category = ['bedroom', 'sink'];
       //var category = ['bedroom', 'sink', 'desk', 'blackfast', 'cleaning', 'bathroom', 'livingroom', 'entrance', 'invitation', 'washingmachine'];
       var number = ['', '①', '②', '③', '④', '⑤', '⑥', '⑦', '⑧', '⑨', '⑩', '⑪', '⑫', '⑬', '⑭','⑮'];
       var wordData = new Object();
       for (var i = 0 ; i < category.length; i++) {
         for (var j = 0; j < cnt[i]; j++) {
           var k = j+1;
           categoryInfo.audioSrc = "assets/audios/"+category[i]+"/"+category[i]+"_"+k+".mp3";
           categoryInfo.soundId = "sound"+k;
           categoryInfo.wordNum = number[k];
           categoryInfo.circleId = "circle"+k;
           categoryInfo.blindwordId = "blindword"+k;
           categoryInfo.wordtestId = "word_test"+k;
           categoryArray.push(categoryInfo);
           categoryInfo = new Object();
         }
         wordData[category[i]] = categoryArray;
       }
       var jsonInfo = JSON.stringify(wordData);
       console.log(jsonInfo);

이런식으로 제가 계층형 JSON을 만들고 있는데

카테고리값이 점점 증가할때마다 포문이 또 카운트되서 예를 들면 bedroom하나만 존재한다면 cnt[i] 값인 8이 제대로 들어가서 9번 루프가 제대로 도는데 bedroom, sink 등.. 점점 카테고리가 증가할때마다 포문이 중복해서 계속 같이 돌아가면서 돌아가는데

흠.. 제가 감이 잘안와서 엄청 초보적인 질문이지만 양해부탁드립니다. ㅠ

 다음글 REST API 개발 시 키 값 처리방식에 대해 질문드... (6)
 이전글 filter_var()함수를 사용하여 데이터값을 처리하... (3)

댓글

일용직노동자 / 2017/03/07 19:49:43 / 추천 0
var categoryArray = new Array();
       var categoryInfo = new Object();
       var cnt = ['8', '12', '9', '7', '8', '6', '11', '10', '10', '8'];
       var category = ['bedroom', 'sink'];
       //var category = ['bedroom', 'sink', 'desk', 'blackfast', 'cleaning', 'bathroom', 'livingroom', 'entrance', 'invitation', 'washingmachine'];
       var number = ['', '①', '②', '③', '④', '⑤', '⑥', '⑦', '⑧', '⑨', '⑩', '⑪', '⑫', '⑬', '⑭','⑮'];
       var wordData = new Object();
       for (var i = 0 ; i < category.length; i++) {
         for (var j = 0; j < cnt[i]; j++) {
           var k = j+1;
           categoryInfo.audioSrc = "assets/audios/"+category[i]+"/"+category[i]+"_"+k+".mp3";
           categoryInfo.soundId = "sound"+k;
           categoryInfo.wordNum = number[k];
           categoryInfo.circleId = "circle"+k;
           categoryInfo.blindwordId = "blindword"+k;
           categoryInfo.wordtestId = "word_test"+k;
           categoryArray.push(categoryInfo);
           categoryInfo = new Object();
         }
         wordData[category[i]] = categoryArray;
         categoryArray = new Array();
       }
       var jsonInfo = JSON.stringify(wordData);
       console.log(jsonInfo);

아 자체 해결했습니다.

집어넣을때 배열초기화를 안했네요.. ㅠㅠㅠㅠㅠ 바보인가