for循环为何只返回最后一次结果

我想返回{name:"tom",age:"12"},为什么是返回{age:"12"}

    function parseQuery(query){

    //以&分隔传入的字符串,变为数组

    var arr = query.split("&");

    for (var i = 0; i < arr.length; i++) {

        var obj1 = {};

        //对象属性

        var pro = arr[i].match(/[^=]*/)[0];

        //对象属性的值,要先判定是否为空

        if (arr[i].match(/=.*/) === null) {

            var val = "";    

        } else {

            var val = arr[i].match(/=.+/)[0].substring(1);

        }

        //给对象添加属性值对    

        if (pro === "") {

            continue;

        } else{

            obj1[pro] = val;

        }

    }

    return obj1;

}

parseQuery("name= tom &age=12");


胡子哥哥
浏览 1933回答 1
1回答

扬帆大鱼

你把对象的声明放到循环里, 每次循环都要初始化一次. 上个循环刚添加的name, 第二个循环就给清空啦
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript