我有一组数据,我使用表单来获取它,并使用这些数据调用网站的api。要成为单个值,是否进行任何检查并使用该值进行调用,返回一个值,该值包含我必须减去表单上输入的值的百分比。
GET /getvalues?id={FORMNUMBER}
RETURN
{
"id": {FORMVALUE}
"percent": 45
}
现在在某些情况下,api会返回多个值,并且它们没有与每个值相关联的标识符,因此很容易,因为它们只需要去获取标识符的值。
GET /getvalues?id={FORMNUMBER}
RETURN
{
"id": {FORMVALUE},
"values" : [
{
"value": 18,
"percent": 10
},{
"value": 45,
"percent": 24
},{
"value": 57,
"percent": 32
}
]
}
在前面的例子中,如果我的表单中的值是21,则应该取18,因为它的两个数字之间的差异较小,但如果值为40,我也取值18,因为它没有传递45的值
我需要在接收表单的值旁边取更多等于或低于此值的值,并且仅在我通过所有数组执行此操作时,将减法和较小值添加到数组中,捕获价值较低的结束。有没有更简单的方法呢?我想我只能使用功能很长很复杂,而且可能效率低下。感谢。
答案 0 :(得分:0)
只需反转数组(array.reverse()
),然后该函数就会非常简单。
var values = [{"value": 18, "percent": 10}, {"value": 45, "percent": 24}, {"value": 57, "percent": 32}].reverse();
var form_value = 40;
var percent;
for ( index = 0; index < values.length; ++index ) {
if ( form_value >= values[index].value ) {
percent = values[index].percent;
break;
}
}
console.log( percent ); // 10