gpt4 book ai didi

Javascript:以数组名称的一部分作为参数的函数?

转载 作者:行者123 更新时间:2023-11-30 13:30:43 28 4
gpt4 key购买 nike

我有一个涉及多个不同数据数组的 Google map ,但我无法有效地对它的各个部分进行编码。例如,我有这段代码,想把它变成一个函数,为各种不同的名字运行相同的东西,而不仅仅是 Wilma。我可以轻松地创建一个包含名称的数组,并将其作为参数传递,但是我将如何构建像“data_NAME[k][3]”这样的数组名称?我想将字符串与数组名称的一部分连接起来一定很简单,但我坚持使用语法。非常感谢任何帮助。

if (currentcroc == 'Wilma') {

for (k = 0; k < data_wilma.length; k++) {

var pointmarker = new google.maps.Marker({
position: latlng_wilma[k],
icon: markerType['point'+data_wilma[k][3]],
shadow: markerType['pointshadow'],
shape: pointshape,
map:map,
zIndex: 4
});

pointarray.push(pointmarker);


(function (k, pointmarker) {

google.maps.event.addListener(pointmarker, 'mouseover', function() {
tooltip.show('Wilma: '+data_wilma[k][2]);
});

google.maps.event.addListener(pointmarker, 'mouseout', function() {
tooltip.hide();
});

})(k, pointmarker);

}

}

最佳答案

使用关联数组(映射),其中键是名称(例如 wilma),值是二维数组:

var nameToDataMap = {
wilma: [ [0, 1, 2],
[3, 4, 5],
[6, 7, 8]
],
fred: [ [0, 1, 2],
[3, 4, 5],
[6, 7, 8]
]
};

var nameToLatLongMap = {
wilma: [ ... ],
fred: [ ... ]
};

然后你的代码变成:

var data = nameToDataMap[currentcroc];
var latLong = nameToLatLongMap[currentcroc];

for (k = 0; k < data.length; k++) {

var pointmarker = new google.maps.Marker({
position: latLong[k],
icon: markerType['point' + data[k][3]],
shadow: markerType['pointshadow'],
shape: pointshape,
map:map,
zIndex: 4
});

pointarray.push(pointmarker);

(function (k, pointmarker) {

google.maps.event.addListener(pointmarker, 'mouseover', function() {
tooltip.show(currentcroc + ': ' + data[k][2]);
});

google.maps.event.addListener(pointmarker, 'mouseout', function() {
tooltip.hide();
});

})(k, pointmarker);
}

关于Javascript:以数组名称的一部分作为参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875998/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com