单独的数组成两个阵列

问题描述:

我不知道如何可以分离由“123.152323,152.123232”到“123.152323”和“152.123232”的阵列。单独的数组成两个阵列

我拿起串从静止,该字符串看起来是这样的。

ResponseHandler所({ “项目”:[{ “Name”: “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); 
     } 
} 

我可以把它变成一个数组拆分前的位置?我知道分裂()存在,但如果字符串已经不仅仅是位置的详细信息,如姓名,城市等

+5

你的意思是,这是JSON?解析它使用'JSON.Parse'并回落'eval' ... – Ryan

+0

为什么你不能把这个字符串当作json? –

+0

@minitech:看起来不像JSON;相反,这是一个真正的“JSO”!他错误地标记了他的变量。 –

为什么另起炉灶?这似乎是你有一个有效的JSON对象,为什么不干脆用JQuery.parseJSON

+4

他什么时候说过使用jQuery? – Zirak

+1

我只推荐使用一个好的外部库,而不是从头开始重新创建JSON解析。 –

+3

@parapurarajkumar:没有人需要“重新创建JSON解析”。现代浏览器有JSON.parse,旧浏览器可以使用eval('('+ jsonStr +')')。请记住,JSON是故意设计成容易的JavaScript解析 - JQuery的parseJSON主要是那里的便利性和一致性对于已经使用JQuery – hugomg

现代浏览器包含本地JSON方法(如JSON.parse,JSON.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对象,因此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上找到了一些阅读材料)

+0

嗨 感谢您的回复,我已经尝试过您的解决方案,但无法使其正常工作。我收到的字符串看起来像这样。 responseHandler({“items”:[{“name”:“xxx”,“location”:[“xx.xxxxx”,“xx.xxxxx”],... – Philip

+1

在这种情况下,不需要解析你传递了一个真正的js对象),所以你可以将'json.items [i] .location'直接推送到数组中。 – KooiInc

+0

好吧,这很有用,谢谢!:)但是如何将数组拆分成两个连接的数组对彼此?现在,当我执行警报(标记[0])时,我得到xx.xxxxx,xx.xxxxx。或者我错过了什么? – Philip