Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环浏览结果并根据距离更改值_Javascript_Arrays_If Statement - Fatal编程技术网

Javascript 循环浏览结果并根据距离更改值

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

我试图在一组对象之间循环。我想根据距离改变等级。例如,如果距离为10-20英里,则额定值将下降

这就是我所做的,但我不确定为什么它不工作,因为我没有得到任何错误

<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您已经在产品数组中设置了评级?