用于在范围之间循环if的Javascript
案例: 该函数接受一个数字输入。需要比较该数字在哪个数据点内 条件: 我们知道每次都会增加多少。在这种情况下是50 我们不知道有多少物体。在这种情况下,有3个 它总是从0开始 这是一个可以实现它的静态函数(输入=55):用于在范围之间循环if的Javascript,javascript,arrays,json,for-loop,Javascript,Arrays,Json,For Loop,案例: 该函数接受一个数字输入。需要比较该数字在哪个数据点内 条件: 我们知道每次都会增加多少。在这种情况下是50 我们不知道有多少物体。在这种情况下,有3个 它总是从0开始 这是一个可以实现它的静态函数(输入=55): loopThis(输入){ 如果(输入50和输入
loopThis(输入){
如果(输入<50){
用于(数据中的var i){
数据[i].color=“黑色”;
}
数据[0]。颜色=“红色”;
}否则如果(输入>50和输入<100){
用于(数据中的var i){
数据[i].color=“黑色”;
}
数据[1]。颜色=“红色”;
}否则{
用于(数据中的var i){
数据[i].color=“黑色”;
}
数据[2]。颜色=“红色”;
}
}
这将导致第二个数据对象(数据[1])变为红色,其余数据对象变为黑色
如何考虑上述条件,如何使代码动态化
如果数组中有4个对象,这将不起作用。我们无法知道每次要写入多少if条件。试试这段代码
loopThis(input){
if(input < 50){
for(var i in data){
data[i].color = "black";
}
data[0].color = "red";
}else if(input > 50 && input < 100){
for(var i in data){
data[i].color = "black";
}
data[1].color = "red";
}else{
for(var i in data){
data[i].color = "black";
}
data[2].color = "red";
}
}
tmp变量将为您提供要标记为红色的索引(例如,如果输入为51,tmp=1;输入160,tmp=3)。我想这应该可以解决问题。试试这段代码
loopThis(input){
if(input < 50){
for(var i in data){
data[i].color = "black";
}
data[0].color = "red";
}else if(input > 50 && input < 100){
for(var i in data){
data[i].color = "black";
}
data[1].color = "red";
}else{
for(var i in data){
data[i].color = "black";
}
data[2].color = "red";
}
}
tmp变量将为您提供要标记为红色的索引(例如,如果输入为51,tmp=1;输入160,tmp=3)。我想这应该可以解决问题。不要使用
parseInt
进行舍入。您可能需要管理边界条件,例如50、100等。在上述登录输入中,50将标记数据[1]。color=“red”。使用Math.round()代替parseInt()。Math.floor(input/50)
不要使用parseInt
进行舍入。您可能需要管理边界条件,如50、100等。在上述登录输入中,50将标记数据[1]。color=“红色”。使用Math.round()代替parseInt。Math.floor(输入/50)
function loopThis(input){
for(var i in data){
data[i].color = "black";
}
var tmp = Math.floor(input/50);
data[tmp].color = "red";
}