我正在尝试让这个循环运行到我的列表中的1-27,但我认为它循环遍历我的列表并且只给出了列表中最后一项的输出。我想我希望它在每次循环时更新变量。
我只得到'27'(列表中的最后一项)的输出,或者如果我将它们全部删除,那么我将获得'1'的输出(见下文)。
有没有人知道如何做到这一点?
var regionslist = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27];
var justthisregion;
var pndsplusthisregion;
var test;
var regionsplusponds = function (regionslist){
for (var i in regionslist) {
justthisregion = finregions.remap([regionslist[i]],[1000],0);
}
pndsplusthisregion = justthisregion.add(justponds);
if (pndsplusthisregion===2000) {
test = finregions.remap([regionslist[i]],[2000])
} else {
test = finregions.remap([regionslist[i]],[999])
}
addToMap(test, {min:0, max:2000, palette:['ff0033','993366','003366'], opacity:0.5}, "Regions with Ponds");
};
答案 0 :(得分:0)
你过早关闭你的循环。这是唯一行被运行27次justthisregion = finregions.remap([regionslist[i]],[1000],0);
。所以justthisregion
最终只会持有最后一次交互。移动}
。
var regionsplusponds = function (regionslist){
for (var i in regionslist)
{
justthisregion = finregions.remap([regionslist[i]],[1000],0);
pndsplusthisregion = justthisregion.add(justponds);
if (pndsplusthisregion===2000)
test = finregions.remap([regionslist[i]],[2000]);
else
test = finregions.remap([regionslist[i]],[999]);
addToMap(test, {min:0, max:2000, palette:['ff0033','993366','003366'], opacity:0.5}, "Regions with Ponds");
} /* <-- this was your problem line */
};
答案 1 :(得分:0)
啊,你的循环并不包含你试图迭代的所有逻辑。试试这个:
var regionsplusponds = function (regionslist){
for (var i in regionslist) {
justthisregion = finregions.remap([regionslist[i]],[1000],0);
pndsplusthisregion = justthisregion.add(justponds);
if (pndsplusthisregion===2000){
test = finregions.remap([regionslist[i]],[2000])}
else{
test = finregions.remap([regionslist[i]],[999])}
addToMap(test, {min:0, max:2000, palette:['ff0033','993366','003366'], opacity:0.5}, "Regions with Ponds");}
};
你的for循环重新分配了这个区域27次,然后继续运行剩下的代码一次。我从这一行之后移动了for循环的结束花括号:
justthisregion = finregions.remap([regionslist[i]],[1000],0);}
到这一行之后:
addToMap(test, {min:0, max:2000, palette:['ff0033','993366','003366'], opacity:0.5}, "Regions with Ponds");}
这应该有效。