Javascript 循环浏览结果并根据距离更改值
我试图在一组对象之间循环。我想根据距离改变等级。例如,如果距离为10-20英里,则额定值将下降 这就是我所做的,但我不确定为什么它不工作,因为我没有得到任何错误Javascript 循环浏览结果并根据距离更改值,javascript,arrays,if-statement,Javascript,Arrays,If Statement,我试图在一组对象之间循环。我想根据距离改变等级。例如,如果距离为10-20英里,则额定值将下降 这就是我所做的,但我不确定为什么它不工作,因为我没有得到任何错误 <script> var products = [{product:"Shoe", Rating:"4", Distance:"2"},{product:"Trousers", Rating:"5", Distance:"5"},{product:"Glasses", Rating:"3", Distance:"7
<script>
var products = [{product:"Shoe", Rating:"4", Distance:"2"},{product:"Trousers", Rating:"5", Distance:"5"},{product:"Glasses", Rating:"3", Distance:"7"},{product:"Hat", Rating:"2", Distance:"10"}];
var rating = products[1];
var distance = products[2];
for (var i=0; i < products.length; i++) {
if (distance >= 0 && distance <=4)
rating = rating+1;
else if (distance >= 5 && distance <=10)
rating = rating-1;
else if (distance >= 11 && distance <=20)
rating = rating-2;
else if (distance >= 21 && distance <=100)
rating = rating-3;
else if (distance >= 101 && distance <=10000)
rating = rating-4;
else
rating = rating;
console.log(products[i]);
}
</script>
var产品=[{产品:“鞋”,评级:“4”,距离:“2”},{产品:“裤子”,评级:“5”,距离:“5”},{产品:“眼镜”,评级:“3”,距离:“7”},{产品:“帽子”,评级:“2”,距离:“10”}];
var评级=产品[1];
var距离=产品[2];
对于(变量i=0;i 如果(distance>=0&&distance=5&&distance=11&&distance=21&&distance=101&&distance我觉得您缺少一些东西。首先,您循环遍历每个列表对象,从不更新评级变量。其次,对象中的距离和评级变量是string
s而不是int
s,因此您的比较和操作将被关闭。在开始时,您为对象指定等级和距离,而不是对象的值
我会将变量赋值更改为for循环内部,在[I]
处,然后更改距离或等级。此外,还可以将parseInt
作为int
进行比较。然后在循环每次迭代后更新等级
var产品=[{
产品:“鞋”,
评级:“4”,
距离:“2”
}, {
产品:"长裤",,
评级:“5”,
距离:“5”
}, {
产品:“眼镜”,
评级:“3”,
距离:“7”
}, {
产品:“帽子”,
评级:“2”,
距离:“10”
}];
var评级;
var距离;
对于(变量i=0;i 如果(距离>=0&&distance=5&&distance=11&&distance=21&&distance=101&&distance您已经在产品数组中设置了评级?