weixin_45616049 2020-03-24 15:25 采纳率: 100%
浏览 138
已采纳

想了一天没想明白,刚刚自学的java,请大神指定下,尽量讲的细一点,万分感谢

//这是JS工具类,用来获取url请求地址中?后面携带的参数数据的,用法是指定key返回对应的value值(问题在代码中的注释)

"getParameterMap":function(){

        var url = location.search;  
        var HMRequest = new Object(); 

        if (url.indexOf("?") != -1) {  
          var str = url.substr(1); 
          strs = str.split("&");  
          for(var i = 0; i < strs.length; i ++) {  
             var pname=strs[i].split("=")[0];
             var pvalue=unescape(strs[i].split("=")[1]);
             var pvalues=null; 
             //下边的语句是什么意识啊???????????
             if(HMRequest[pname]==null){ 
                //JS创建了新的数组对象并赋值pvalue,赋值给谁了这是,看不懂用呢?
                HMRequest[pname]=new Array(pvalue)
             }else{
                //push(pvalue);向数组的末尾添加一个元素,哪个数组啊?
                        //HMRequest[pname]是个数组?没看明白啊?
                HMRequest[pname].push(pvalue);
             }
          }  
       }  
       return HMRequest;
    },
  • 写回答

1条回答 默认 最新

  • franzhong 2020-03-24 18:17
    关注

    HMRequest[pname]里面只有一个pname你别受他干扰,直接把HMRequest[pname]替换为test
    你就明了了

    if(test==null){//test为空的话才执行下一句,否则执行else的下一句
    test = new Array(123);//把123转换为数组,给test
    }else{//非空情况
    test.push(456);//给数组再添加一个值
    }

    要注意这是在for循环里的,会执行很多次的,会发现if只会被调用一次,因为进去后,test就会被赋值了,再也不是null了,以后的循环只会进else里
    push就是给test这个数组里不断添东西,假如经过三次for循环,test里会有三个值的,[123,456,456],你想想是不是,数组就是这么用的,在java基础教程的前部分就有关于for循环条件语句if else的详细用法
    语言都是如此,有个基础的顺序逻辑在里面

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?