因此,在使用google map api示例时,我正在尝试从字符串构建对象列表。我的java脚本在这里有一个星期,但我认为第一个代码是我创建对象的循环。
Locations部分最终应该是什么样子。如果我使用具有对象的位置,则该功能起作用。但如果我用循环对象替换它就会失败。
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]
]
答案 0 :(得分:0)
您需要将数组推入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"
(和z === 0
到splitLocations.length
)
答案 1 :(得分:0)
没有神奇的5
和4
(因为我无法理解他们来自哪里),我建议这样做:
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);
参考文献:
答案 2 :(得分:0)
您不使用+ =添加到数组。您可以将其更改为:
array.push(item);
此外,您的预期结果似乎包含实际的字符串和数字。在你的循环中,你不仅没有使用parseInt
/ parseDouble
,而且你只是将4个值作为字符串附加,用逗号分隔。我猜测你想要locations
数组中的单个数组。所以,举个例子吧。此代码中的第一个“[
”正在创建一个新数组:
daLocs.push([breakdown[0], parseDouble(breakdown[1]), ...TODO... ])