Tôi đã tạo bản đồ google theo hướng dữ liệu với các biểu tượng khác nhau được chỉ định cho bản đồ tùy thuộc vào loại mục nằm. Vì vậy, nếu tôi có 5 loại mốc, và mỗi được một biểu tượng khác nhau (cửa hàng, thư viện, bệnh viện, vv) - những gì tôi muốn làm là tạo ra các đối tượng biểu tượng google động. Tôi đã nghĩ như sau:Có cách nào dễ dàng để tạo các biến động với Javascript?
types = array('hospital','church','library','store',etc);
var i=0;
while (i<=types.length) {
var landmark + i = new google.maps.Icon();
landmark.image = "icon" + i + ".png";
i++;
}
tuy nhiên, như bạn có thể đoán, điều này không hiệu quả. Tôi cũng đã thử sử dụng eval, như thế này:
while (i<=types.length) {
doIcon(i);
i++;
}
function doIcon(i){
eval("var landmark" + i + " = new.google.maps.Icon();");
return eval("landmark" + i);
}
nhưng nó không hoạt động - tôi đánh giá cao mọi con trỏ về việc tạo biến javascript động. Nó phải là js tinh khiết, tôi có thể làm điều đó trong PHP nhưng đó không phải là một lựa chọn ở đây.
Cảm ơn!
+1 - Chào mừng bạn đến với StackOverflow :-) –
JavaScript thực sự là ngôn ngữ động. Bạn hiếm khi cần sử dụng câu lệnh eval cho những thứ như thế này, bởi vì bạn chủ yếu có thể viết bất cứ điều gì bạn muốn miễn là cú pháp là chính xác và nếu những gì bạn viết không tồn tại, bạn sẽ gặp lỗi thời gian chạy. Một điều tốt đẹp về javascript là khả năng window.close giống như cửa sổ viết ["close"]. Vì vậy, bạn thậm chí có thể viết cửa sổ ["close"](); hoặc var c = "close"; cửa sổ [c](); – Alxandr