如何将数组拆分为使用javascript给出的格式?

时间:2018-12-05 09:57:01

标签: javascript arrays

我的数据是

["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"]

如何将其拆分为

[
    { lat: 9.968034, lng: 77.906814},
    { lat: 8.699679, lng: 77.478347},
    { lat: 8.797406, lng: 80.895095}
];

请帮助我解决问题...

我尝试过

var jArray = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"];
var temp = {};

for(var j=0; j<jArray.length;j++){
  var tr = {
    'lat' :jArray[j][1],
    'lng' :jArray[j][0]
  }
  temp.push(tr);
}

console.log(temp)

6 个答案:

答案 0 :(得分:4)

您可以尝试一下。

借助map()split()函数。

let arr = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"]

let op = arr.map(e => {
   let temp = e.split(',');
   return { lat:temp[0], lng: temp[1] };
})
console.log(op);

答案 1 :(得分:2)

您可以拆分一个破坏结构的数组。

var data = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"],
    result = data.map(s => 
        (([lat, lng]) => ({ lat, lng }))
        (s.split(','))
    );

console.log(result);

答案 2 :(得分:0)

Javascript具有针对字符串的内置JSON解析,我想这就是您拥有的:

var myObject = JSON.parse("my json string");

在您的示例中使用它的方法是:

var jsonData = JSON.parse(myMessage);
for (var i = 0; i < jsonData.counters.length; i++) {
    var counter = jsonData.counters[i];
    console.log(counter.counter_name);
}

尝试一下,希望对您有所帮助。

答案 3 :(得分:0)

您可以像这样使用map和ES2015 destructuring assignment

let data = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"]

let newArray = data.map(loc => {
  const [lat, lng] = loc.split(',')
  return {
    lat,
    lng
  }
})

console.log(newArray)

答案 4 :(得分:0)

这将为您完成。

var arrayOfStrings = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"];
var arrayOfObjects = [];

for(var item = 0; item < arrayOfString.length; item++){
   var latlng = {};
   var splittedValues = arrayOfString[item].split(",");
   latlng["lat"] = splittedValues[0];
   latlng["long"] = splittedValues[1]
   arrayOfObjects.push(latlng);
}

console.log(arrayOfObjects);

答案 5 :(得分:0)

您的循环是正确的,但是您应该使用,.split()分隔符分割字符串以获取字符串的一部分。

var jArray = ["9.968034,77.906814", "8.699679,77.478347", "8.797406,80.895095"];

var temp = [];
for (var j=0; j<jArray.length;j++){
  temp.push({
    'lat': jArray[j].split(',')[0],
    'lng': jArray[j].split(',')[1]
  });
}
console.log(temp);

您也可以改用foreach

var temp = [];
jArray.forEach(function(item){
  temp.push({
    'lat' :item.split(',')[0],
    'lng' :item.split(',')[1]
  });
});