将字符串数组转换为对象数组

时间:2015-08-13 17:17:41

标签: javascript jquery arrays

我有这个包含地理数据字符串的数组。 enter image description here

如何将其转换为如下对象数组:

obj[0] = {lat:0, lng:0}

2 个答案:

答案 0 :(得分:7)

尝试使用array.prototype.map来简化您的工作,

var newArray = arr.map(function(str){
 return JSON.parse("{" + str.substring(0,str.length - 1).replace(/lat/,'"lat"').replace(/lng/,'"lng"') + "}")
});

同样,如果你在该数组中有正确格式的字符串,那么可以删除一些不必要的.replace(),这将提高性能。

DEMO

答案 1 :(得分:0)

你可以这样做:

<!DOCTYPE html>
<html>
<body>
    <script>
    var data = ["lat: 0, lng: 0;", "lat: 25.233, lng:22.455;"];
    var newData = new Array();
    for(var i = 0; i < data.length; i++)
    {
        var temp = data[i].replace(/lat/g, "\"lat\"");
        temp = temp.replace(/lng/g, "\"lng\"");
        temp = temp.replace(/;/g, "");
        temp = "{" + temp + "}";
        newData.push(JSON.parse(temp));
    }
    console.log(newData);
    </script>
</body>
</html>