Javascript从字符串构建对象

Javascript building objects from string

本文关键字:对象 构建 字符串 Javascript      更新时间:2023-09-26

所以在与谷歌地图api的例子工作,我试图建立一个对象列表从字符串。我的java脚本是一个小星期在这里,但第一个代码是循环,我想我正在创建对象。

位置部分是它最终应该看起来的样子。如果我用对象的位置函数工作。但是如果我用循环对象替换它,它就失败了。

var myStr = "bob|44.654990|-88.129186|7:20 PM,karen|44.469493|-88.087746|8:19 PM";
var splitLocations = myStr.split(",");
var daLocs = [];
for(var z=0;z<splitLocations.length;z++){
    var breakdown = splitLocations[z].split("|");
    daLocs += '[' + breakdown[0] + ',' + breakdown[1] + ',' + breakdown[2] + ',' + z + '],';
}
var locations = [
    ['bob', 44.654990, -88.129186, 5],
    ['karen', 44.469493, -88.087746, 4]
]

您需要将数组压入daLocs;

var myStr = "bob|44.654990|-88.129186|7:20 PM,karen|44.469493|-88.087746|8:19 PM";
var splitLocations = myStr.split(",");
var daLocs = [];
for(var z=0;z<splitLocations.length;z++){
    var breakdown = splitLocations[z].split("|");
    //daLocs += '[' + breakdown[0] + ',' + breakdown[1] + ',' + breakdown[2] + ',' + z + '],';
    daLocs.push([breakdown[0], breakdown[1], breakdown[2], z]);
}

daLocs[1][2] === "-88.087746"

(and z === 0 to splitLocations.length)

没有神奇的54(因为我不能理解它们从哪里来),我建议这样做:

var myStr = "bob|44.654990|-88.129186|7:20 PM,karen|44.469493|-88.087746|8:19 PM",
    parts = myStr.split(','),
    locations = [];
for (var i = 0, len = parts.length; i<len; i++){
    locations.push(parts[i].split('|'));
}
console.log(locations);

JS Fiddle demo.

引用:

  • Array.push() .
  • String.split() .

不能使用+=来添加到数组中。你可以把它改成:

array.push(item);

而且,您期望的结果似乎包含实际的字符串和数字。在循环中,您不仅没有使用parseInt/parseDouble,而且您只是将4个值附加为字符串,用逗号分隔。我猜你想要的是locations数组中的单个数组。举个例子。代码中的第一个"["创建了一个新数组:

daLocs.push([breakdown[0], parseDouble(breakdown[1]), ...TODO... ])