如何“生成”独特的变量? [英] How to "generate" unique variables?
问题描述
我目前正在研究Google地图,现在我想从API中生成引脚。但后来我陷入了困境,因为一个销钉看起来像这样:
I'm currently working on a Google Map, and now I want to "generate" pins from an API. But then I get stuck, because a pin looks like this:
var imageDriver = 'marker.png';
var DriverLatLng = new google.maps.LatLng(location.lat, location.lng);
var driverMarker = new google.maps.Marker({
position: DriverLatLng,
map: map,
icon: imageDriver,
title: drivers[0].name
});
}
我想创建一个可以生成这些变量的函数带有前缀。检查下面的例子:
I want to create a function of some sort that could "generate" these variables with a prefix. Check an example below:
var imageDriver0;
var DriverLatLng0;
var driverMarker0;
position: DriverLatLng0,
map: map,
icon: imageDriver0,
title: drivers[o].name
这些变量当然必须是唯一的,所以它们不会碰撞。我有这个for-loop计数我的API中的所有驱动程序。我可以以某种方式使这个for-loop创建这些引脚?
示例:
These variables must be unique of course so they don't "collide". I have this for-loop that counts all "drivers" inside my API. Could I somehow make this for-loop to create these pins? Example:
driversRealtime();
function driversRealtime() {
setInterval(function () {
var url = "http://blackcab.didair.se/api/drivers";
var lat;
var lon;
var name;
var id;
$.getJSON(url,
function (response) {
for (var i = 0; i < response.drivers.length; i++) //Counts data-elemements inside
lat = response.drivers[i].currentLat;
lon = response.drivers[i].currentLon;
name = response.drivers[i].name;
id = response.drivers[i].profileId;
console.log(lat);
console.log(lon);
console.log(name);
console.log(id);
});
}, 3000); //Delay in milliseconds
}
推荐答案
动态创建变量名,但几乎总是毫无意义。
It's possible to create variable names dynamically, but almost always pointless.
使用数组或者后缀,并将值作为属性放入数组中的对象。例子:
Use an array instead or a suffix, and put the values as properties in an object in the array. Example:
var points = [];
var point = {
"url": url,
"lat": lat,
"lng": lng,
"name": name,
"id": id
};
points.push(point);
这篇关于如何“生成”独特的变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!