Javascript-创建和访问自己的数据集(数组/对象)
我正在寻找一种处理谷歌地图标记的好方法 我需要做的是,将标记存储在数组(或对象)中,并能够使用键(marker_1)对它们进行寻址,还能够遍历整个数组并访问所有元素,以从映射中删除它们 目前我有:Javascript-创建和访问自己的数据集(数组/对象),javascript,arrays,Javascript,Arrays,我正在寻找一种处理谷歌地图标记的好方法 我需要做的是,将标记存储在数组(或对象)中,并能够使用键(marker_1)对它们进行寻址,还能够遍历整个数组并访问所有元素,以从映射中删除它们 目前我有: var markers = []; // global | was using var markers = {}; earlier // and i add elemtnts like this () markers[elementid] = { lat: varlat, lng:
var markers = []; // global | was using var markers = {}; earlier
// and i add elemtnts like this ()
markers[elementid] = {
lat: varlat,
lng: varlng',
desc: vardesc,
markerobj: markerobject
}
也许我甚至不知道我还有什么。它是数组、对象还是混合体(从未找到任何好的资源来了解这两者之间的差异)
我可以毫无问题地使用markers[“marker_1”]
语法访问它。
但是,这些不允许我循环遍历对象/数组:
console.log(markers.length);
// returns 0. but array is defined while debugging code in firebug
for(var i = 0; i < markers.length; i++){
console.log(markers[i]);
}
根本不起作用
为什么我不能像在PHP中那样创建、遍历和访问数组\ 尝试使用:
for(var i in markers){
console.log(markers[i]);
}
也许你在重写一些东西。数组是基于索引的,当您添加一个字符串作为索引时,它会立即成为一个对象,访问内容的唯一方法就像我所说的示例
这将是证明这一点的另一个例子:
var array = [];
array.push('1');
array['hola'] = {hola: 'mundo'};
for (i in array)
console.log(array[i]);
console.log(array.length);
您必须通过for循环中的标记['marker_'+(i+1)]访问元素,因为元素不是通过索引而是通过它们的键来访问的。这似乎也不可行。它就像它的数组,但完全没有键。它甚至不启动迭代;到var标记={};我能最终以某种方式得到元素的数量吗?仅仅因为它的定义并不意味着它有内容,你确定你“在里面放了一些东西”吗?是的,我是:但是,我怀疑它的数组或对象。如果elementid是字符串(比如你有“markers_1”作为例子),那么markers必须是一个对象,初始化为
={}
,而不是数组。数组仅在数字上建立索引。对于对象,不使用.length
,要迭代对象的属性,请使用MasqueradeCurus的示例。
var array = [];
array.push('1');
array['hola'] = {hola: 'mundo'};
for (i in array)
console.log(array[i]);
console.log(array.length);