如何获取与 javascript 字典关联的值
How to get values associated to a javascript dictionary
我在 html 页面的脚本标记内声明了这个字典变量。
我想获取与“Roads”和“Intersections”键关联的值。每次刷新页面时,这些值都会更改。抓住它们,将允许我使用 Javascript 更改 python folium 地图上的这些颜色:
(geo_json_cae0ea33c63e4c438678d293e5c32c0d.setStyle({'fillColor': "#FF0000", 'color': "#FF0000"});
根据建议,我尝试了这个,但没有得到预期的结果。
var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
base_layers : {
},
overlays : {
"Roads" : geo_json_cae0ea33c63e4c438678d293e5c32c0d,
"Intersections" : feature_group_1c28eff59e394734be54cf676a09eae1,
},
};
window.onload = function() {
for (var name in this) {
if (name.includes("layer_control_")) {
for(let key in this[name]) {
console.log(key, this[name][key])
}
}
}
};
除了我想要的(覆盖字典的值)之外,我在控制台中得到了很多东西
假设您不能直接访问 layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb
(因为重载时名称会改变),您可以从 window
:
中访问变量
var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
base_layers : {
},
overlays : {
"Roads" : "geo_json_cae0ea33c63e4c438678d293e5c32c0d",
"Intersections" : "feature_group_1c28eff59e394734be54cf676a09eae1",
},
};
window.onload = function(){
for (const name in this){
if (name.includes("layer_control_")){
let { Roads, Intersections } = window[name].overlays;
console.log(Roads, Intersections);
// Roads.setStyle({'fillColor': "#FF0000", 'color': "#FF0000"});
// ...
}
}
};
您最初使用 for (var name in this)
的方法是正确的。
但是,name
只包含变量的名称(字符串),而不是它的值。
我在 html 页面的脚本标记内声明了这个字典变量。 我想获取与“Roads”和“Intersections”键关联的值。每次刷新页面时,这些值都会更改。抓住它们,将允许我使用 Javascript 更改 python folium 地图上的这些颜色:
(geo_json_cae0ea33c63e4c438678d293e5c32c0d.setStyle({'fillColor': "#FF0000", 'color': "#FF0000"});
根据建议,我尝试了这个,但没有得到预期的结果。
var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
base_layers : {
},
overlays : {
"Roads" : geo_json_cae0ea33c63e4c438678d293e5c32c0d,
"Intersections" : feature_group_1c28eff59e394734be54cf676a09eae1,
},
};
window.onload = function() {
for (var name in this) {
if (name.includes("layer_control_")) {
for(let key in this[name]) {
console.log(key, this[name][key])
}
}
}
};
除了我想要的(覆盖字典的值)之外,我在控制台中得到了很多东西
假设您不能直接访问 layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb
(因为重载时名称会改变),您可以从 window
:
var layer_control_aec3ac6e0e424b74a19b4c9d1c78ffeb = {
base_layers : {
},
overlays : {
"Roads" : "geo_json_cae0ea33c63e4c438678d293e5c32c0d",
"Intersections" : "feature_group_1c28eff59e394734be54cf676a09eae1",
},
};
window.onload = function(){
for (const name in this){
if (name.includes("layer_control_")){
let { Roads, Intersections } = window[name].overlays;
console.log(Roads, Intersections);
// Roads.setStyle({'fillColor': "#FF0000", 'color': "#FF0000"});
// ...
}
}
};
您最初使用 for (var name in this)
的方法是正确的。
但是,name
只包含变量的名称(字符串),而不是它的值。