将Array分成两个数组

时间:2011-11-06 19:44:31

标签: javascript arrays json multidimensional-array split

我想知道如何将包含“123.152323,152.123232”的数组分隔为“123.152323”和“152.123232”。

我从休息中拾取字符串,字符串看起来像这样。

ResponseHandler所({ “项”:[{ “名称”: “XXX”, “位置”:[ “xx.xxxxx”, “xx.xxxxx”] ...

    function responseHandler(json) {
        var markers = new Array();
        for (var i = 0; i < json.items.length; i++) {
            markers[i] = (json.items[i].location);
        }
}

我可以在将位置放入数组之前拆分它吗?我知道split()存在但是如果字符串有更多的信息而不仅仅是位置,比如名字,城市等等。

2 个答案:

答案 0 :(得分:0)

为什么重新发明轮子?看起来你有一个有效的json对象,为什么不简单地使用JQuery.parseJSON

答案 1 :(得分:0)

现代浏览器包含原生JSON方法(如JSON.parseJSON.stringify)。使用它们,或使用像this one from google这样的外部库。它使您的生活更轻松(无需拆分或正则表达式搜索等):

function responseHandler(json) {
   // use native (JSON.parse), json-sans-eval would be: jsonParse(json)
   var  myJson  = JSON.parse(json)  
       ,markers = []
       ,i       = 0
       ,len     = myJson.length;
   for (; i < len; i = i+1) {
       markers.push(myJson[i].location);
   }
   return markers;
}

在评论后编辑:您正在传递js-object,因此不需要进行JSON解析。

function responseHandler(json) {
   var  markers = []
       ,i       = 0
       ,len     = json.length;
   for (; i < len; i = i+1) {
       markers.push(json.items[i].location);
   }
   return markers;
}
//for example
var json = {"items":[
                     {"name":"xxx","location":["xx.xxxxx","xx.xxxxx"]},
                     {"name":"yyy","location":["yy.yyyyy","yy.yyyyy"]}
                   ]
           };
var locations = responseHandler(json);
//=> now locations[0][0] is 'xx.xxxxx', locations[1][0] 'yy.yyyyy'

(可能你应该尝试在网上找到关于javascript basics

的一些阅读材料