자바스크립트 질문입니다..

조회수 2453회

해시맵과 배열을 이용해서 코딩중인데 문제가 생겼네요... 배열에 들어있는 해시맵 겍체를 꺼내서 사용하려는데 해시맵의 함수들을 불러오지 못합니다 js는 워낙이 잘 몰라서 질문드립니다 ㅜㅜ. 우선 코드는 다음과 같습니다.

<script>


<%

    ArrayList<EvaluatingWidget> widgets = new ArrayList<EvaluatingWidget>();
    widgets = WidgetManager.getAllWidgets();
%>

Map = function(){
     this.map = new Object();
    };   
    Map.prototype = {   
        put : function(key, value){   
            this.map[key] = value;
        },   
        get : function(key){   
            return this.map[key];
        },
        containsKey : function(key){    
         return key in this.map;
        },
        containsValue : function(value){    
         for(var prop in this.map){
          if(this.map[prop] == value) return true;
         }
         return false;
        },
        isEmpty : function(key){    
         return (this.size() == 0);
        },
        clear : function(){   
         for(var prop in this.map){
          delete this.map[prop];
         }
        },
        remove : function(key){    
         delete this.map[key];
        },
        keys : function(){   
            var keys = new Array();   
            for(var prop in this.map){   
                keys.push(prop);
            }   
            return keys;
        },
        values : function(){   
         var values = new Array();   
            for(var prop in this.map){   
             values.push(this.map[prop]);
            }   
            return values;
        },
        size : function(){
          var count = 0;
          for (var prop in this.map) {
            count++;
          }
          return count;
        }
    };




window.onload=function(){

    var _widgets = null;

    ////member가져오기

    <%if(widgets.size() > 0){
        %>
            _widgets = new Array(<%=widgets.size()%>);
            <%
        for(int i=0 ; i < widgets.size() ; i++){

            %>
                var map = new Map();
                map.put("developer", <%= widgets.get(i).getNickname()%> );

                _widgets[i] = map;
        <%
        }
    }   
    %>

    ///member가져오기
    if(_widgets!=null)
        while(_widgets.length > 0){
                    var m = Map();
                    m = _widgets[i];
                    alert(m.get("developer"));   ///////////////////////////////문제발생
                }
}


</script>

바로 위의 코드에서 var m = Map(); m = _widgets[i]; alert(m.get("developer")); ///////////////////////////////문제발생 이 세줄이 문제입니다 alert안의 get함수를 인지를 못하네요 다만 _widget.pop()은 또 되구요.. ㅜㅜ

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 생성자 함수를 new 없이 호출하신 부분이 의심되는군요. Ch. 2016.10.20 20:13

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)