[英]object property name as variable
我下面有這段代碼,我正在嘗試將maps.setColors({
“中的屬性名稱” color
“替換為drivers數組中的值:
var drivers = {
"drivers":[
{
"driver_id":"101",
"driver_name":"B",
"truck_capacity":1000,
"truck_color":"#00FF00",
"truck_radio":"checked"
},
{
"driver_id":"102",
"driver_name":"A",
"truck_capacity":2000,
"truck_color":"#FF0000",
"truck_radio":""
}
]
};
for (var prop in drivers) {
if (drivers.hasOwnProperty(prop)) {
for (var prop2 in drivers[prop]) {
var color = drivers[prop][prop2]['truck_color'];
maps.setColors({
color: {
current: 0,
polygonOptions: {
fillColor: color,
fillOpacity: 0.7,
strokeColor: '#2143AA',
strokeWeight: 2,
suppressUndo: true
}
}
});
google.maps.event.addDomListener(document.getElementById(id), 'click', function() {
maps.setColor(color);
});
}
}
}
從根本上講,它不能正常工作,我希望循環動態生成如下代碼:
maps.setColors({
'#00FF00': {
current: 0,
polygonOptions: {
fillColor: '#00FF00',
fillOpacity: 0.7,
strokeColor: '#2143AA',
strokeWeight: 2,
suppressUndo: true
}
},
'#FF0000': {
current: 0,
polygonOptions: {
fillColor: '#FF0000',
fillOpacity: 0.7,
strokeColor: '#2143AA',
strokeWeight: 2,
suppressUndo: true
}
}
});
我該怎么辦?
謝謝
像這樣的事情應該做的工作:
var params = {};
for (var prop2 in drivers[prop]) {
var color = drivers[prop][prop2]['truck_color'];
params[color] = {
current: 0,
polygonOptions: {
fillColor: color,
fillOpacity: 0.7,
strokeColor: '#2143AA',
strokeWeight: 2,
suppressUndo: true
}
};
}
maps.setColors(params);
我認為您應該這樣說:
var prove = {
[color]: {
current: 0,
polygonOptions: {
fillColor: color,
fillOpacity: 0.7,
strokeColor: '#2143AA',
strokeWeight: 2,
suppressUndo: true
}
}};
帶剎車。 請參閱此Codepen中的控制台輸出: http ://codepen.io/anon/pen/vKGNbB?editors=1111
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.