var data = [
{
color: "black"
width: 0
},
{
color: "black"
width: 50
},
{
color: "black"
width: 100
},
]
案例:
该函数接受一个数字输入。需要比较这个数字在哪个数据点内。
条件:
我们知道每次它会增加多少。在本例中为 50。
我们不知道有多少对象。在本例中,有 3 个。
它总是从 0 开始。
这是一个可以完成它的静态函数(输入= 55):
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";
}
}
这将导致第二个数据对象 (data[1]) 变为红色,其余部分变为黑色。
如何满足上述条件以及如何使该代码动态化?
如果数组中有 4 个对象,这将不起作用。而且我们无法知道每次要写多少个if条件。
最佳答案
试试这个代码。
function loopThis(input){
for(var i in data){
data[i].color = "black";
}
var tmp = Math.floor(input/50);
data[tmp].color = "red";
}
tmp 变量将为您提供要标记为红色的索引(例如,如果输入为 51,tmp = 1;输入 160,tmp = 3)。我想这应该可以解决问题。
关于用于在范围之间循环 if 的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43803305/