首页 > javascript数组转换为对象?

javascript数组转换为对象?

arr = ["a=1","b=2","c=3"];
转换成 obj={a:1,b:2,C:3}


虽然 夜颩偲雨 和 张栈不全 给出很妙的解决方法,但我看还没有人用过eval实现,所以尝试写了个用eval实现的例子

     var arr = ["a=1","b=2","c=3"];
    o = arrToObject(arr);
    alert(o);
    alert(o.a + " " + o.b + " " + o.c);
    
    
    function arrToObject(arr){
         var strJs = '({';
        for(var i=0;i<arr.length;i+=1){
            var as = arr[i].split("=");
            strJs = strJs + as[0] + ':' +'"' + as[1] + '"' +',';
        }
        strJs = strJs.substr(0,strJs.length-1) + '})';
        return eval(strJs); 
        }

obj = {}
for (var i=0; i<arr.length; i++) {
    [k, v] = arr[i].split("=");
    obj[k] = v;
}

var obj = JSON.parse('{' + arr.join(',').replace(/(\w)=/g, '"$1":') + '}');

var obj = new Object();
var arr = ["a=1","b=2","c=3"];
for (var x in arr){
    var split = arr[x].split('=');
    obj[split[0] ] = split[1];
}

var obj = JSON.parse('{' + arr.map(function(el){ 
    return '"' + el.replace('=','":');  
}) +'}');

  Array.prototype.toObject = function() {
    var obj = {};
    for (var index in this) {
        if (this.hasOwnProperty(index)) {
            if(this[index].indexOf&&this[index].indexOf('=')>-1){
               var splits = this[index].split('=');
               obj[splits[0]] = splits[1];  
            }else{
               obj[index] = this[index];
            }
        }
    }
    return obj;
 };
 var arr0 =  ["a=1","b=2","c=3"];
 var arr1 = ['r',5,6];
arr0.toObject();//Object {a: "1", b: "2", c: "3"}
arr1.toObject();//Object {0: "r", 1: 5, 2: 6}
【热门文章】
【热门文章】