使用拆分从字符串中获取信息

Mic*_*ael 1 javascript arrays

我有这个字符串:

var filePos = "{'Data':'17/02/2015', 'Descrizione':'PROVA AAA', 'Lat':'45.411258', 'Lng':'11.906326', 'Foto':'sdjahvas'}" +
        "{'Data':'18/02/2015', 'Descrizione':'PROVA BAA', 'Lat':'45.411190', 'Lng':'11.906324', 'Foto':'asde'}";
Run Code Online (Sandbox Code Playgroud)

我必须在数组中添加一些信息,如Data,Lat,Lng,Index(渐进式).

我用这个函数:

var jsonString = filePos.replace(/\'/g, '"').split('}'),
positionAry;
jsonString.pop();
positionAry = JSON.parse('[' + jsonString.join('},') + '}]');
beaches = positionAry.map(function (obj, index) {
return [obj.Data, obj.Lat, obj.Lng, index+1];
});
Run Code Online (Sandbox Code Playgroud)

但返回的数组是:

var beaches = [
               ["17/02/2015", "45.411158", "11.906326", 1],
               ["18/02/2015", "45.411190", "11.906324", 2],
             ];
Run Code Online (Sandbox Code Playgroud)

所以我不想要这个数组,但是这个:

var beaches = [
                   ["17/02/2015", 45.411158, 11.906326, 1],
                   ["18/02/2015", 45.411190, 11.906324, 2],
                 ];
Run Code Online (Sandbox Code Playgroud)

简而言之,我不想让Lat和Lng用引号括起来.我怎样才能做到这一点?

dol*_*ldt 5

在您的JSON字符串filePos中,这些值表示为字符串,而不是数字.

如果你不想要"引号"(即你不希望它们作为字符串),你必须手动将它们解析为数字,使用parseFloat().