我将多个值存储在一个数组中,如:
var locations = [
'Bhopal','Mobile',new google.maps.LatLng(18.40,78.81),'images/mobile.png',
'Bangalore','Television',new google.maps.LatLng(18.30,83.90),'images/television.png',
'Hyderabad','Footwear',new google.maps.LatLng(22.95,88.42),'images/footwear.png',
'Kolkata','Kitchen',new google.maps.LatLng(22.58,88.33),'images/kitchen.png',
'Mumbai','Furniture',new google.maps.LatLng(26.16,85.88),'images/furniture.png'
];
这里我在这里获得新的latlng值
function drop() {
clearMarkers();
for (var i = 0; i < locations.length; i++) {
addMarkerWithTimeout(locations[i], i * 200);
}
}
我需要的是,drop函数从数组获取LatLng,我也需要获得前两个值,如'bhopal'和'mobile'并提醒它。我怎么能得到那个?
答案 0 :(得分:1)
function drop() {
clearMarkers();
for (var i = 0; i < locations.length / 4; i++) {
// locations[2 + 4*i] = latlng value google.maps, ....
// locations[4*i] = first column, Bhopal, Bangalore, ...
// locations[1+4*i] = second column, Mobile, Television, ...
// locations[3+4*i] = last column image
}
}
答案 1 :(得分:1)
答案 2 :(得分:1)
首先,您的数据结构似乎不符合您的目的。
您需要一个关联数组,而不是普通数组。
一个粗略的例子:
var locations = [
{"city":"Bhopal","type":"Mobile","latitude":123491283},
{"city":"Paris","type":"SomethingElse","latitude":2342342},
{"city":"Milano","type":"Landline","latitude":56456545}
]
基本上,&#39;对象&#39;在一个数组内。
现在您可以像这样访问它:
for (var i = 0; i < locations.length; i++) {
var city = locations[i].city;
var city = locations[i].type;
var latitude = locations[i].latitude;
}
不是你要求的,但是嘿..
答案 3 :(得分:1)
尝试:
var locations = [
['Bhopal','Mobile',new google.maps.LatLng(18.40,78.81),'images/mobile.png'],
['Bangalore','Television',new google.maps.LatLng(18.30,83.90),'images/television.png'],
['Hyderabad','Footwear',new google.maps.LatLng(22.95,88.42),'images/footwear.png'],
['Kolkata','Kitchen',new google.maps.LatLng(22.58,88.33),'images/kitchen.png'],
['Mumbai','Furniture',new google.maps.LatLng(26.16,85.88),'images/furniture.png']
];
function drop() {
clearMarkers();
for (var i = 0; i < locations.length; i++) {
addMarkerWithTimeout(locations[i][2], i * 200);
}
}
答案 4 :(得分:0)
这是第一行的处理方式。
for (var i = 0; i < locations.length; i=i+4) {
locations[i] has 'Bhopal'
locations[i+1] has 'Mobile'
locations[i+2] has the object
locations[i+3] has 'images/mobile.png'
}
在您的代码中相应地使用它们。
答案 5 :(得分:0)
为什么不像这样创建数组:
var locations = [
{Place : 'Bhopal', Thing : 'Mobile', Location : new google.maps.LatLng(18.40,78.81), Image : 'images/mobile.png'},
{Place : 'Bangalore',Thing : 'Television',Location : new google.maps.LatLng(18.30,83.90),Image : 'images/television.png'},
{Place : 'Hyderabad',Thing : 'Footwear',Location : new google.maps.LatLng(22.95,88.42),Image : 'images/footwear.png'}];
以这种方式管理它会更容易。
答案 6 :(得分:0)
如果您打算将数据保留为问题中的格式,那么建议根据每条记录创建function
来访问记录长度为4个值,这样您就可以一次又一次地使用它
以下是我所谈论的一个例子
Number.MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
function getRecord(data, recNum) {
var length;
if (!Array.isArray(data)) {
throw new Error('data is not an Array');
}
length = data.length;
if (length < 4 || length % 4 !== 0) {
throw new Error('data is empty or record length is incorrect');
}
if (typeof recNum !== 'number' || recNum < 0 || recNum > Math.floor(Number.MAX_SAFE_INTEGER / 4)) {
throw new Error('recNum is out of range or not a valid number');
}
return data.slice(recNum, recNum + 4);
}
var pre = document.getElementById('out'),
locations = [
'Bhopal', 'Mobile', {
lat: 0,
lng: 0
}, 'images/mobile.png',
'Bangalore', 'Television', {
lat: 0,
lng: 0
}, 'images/television.png',
'Hyderabad', 'Footwear', {
lat: 0,
lng: 0
}, 'images/footwear.png',
'Kolkata', 'Kitchen', {
lat: 0,
lng: 0
}, 'images/kitchen.png',
'Mumbai', 'Furniture', {
lat: 0,
lng: 0
}, 'images/furniture.png'
],
length = Math.floor(locations.length / 4),
index;
for (index = 0; index < length; index += 1) {
pre.textContent += JSON.stringify(getRecord(locations, index), null, 2) + '\n\n';
}
&#13;
<pre id="out"></pre>
&#13;
因此调用getRecord(locations, 0)
将返回长度为4的数组和以下数据
[
"Bhopal",
"Mobile",
{
"lat": 0,
"lng": 0
},
"images/mobile.png"
]
现在您可以访问此数组,其中
索引[0]
是Bhopal
和
索引[3]
为images/mobile.png
将数据重新排列(在源头或一次转换时)的替代方案,使其成为更符合您需求的结构。
可能更合适的结构是
数组数组
[
[...data0],
[...dataN]
]
对象数组
[
{...data0},
{...dataN}
]