Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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_Object_If Statement_Lookup - Fatal编程技术网

Javascript查找表

Javascript查找表,javascript,arrays,object,if-statement,lookup,Javascript,Arrays,Object,If Statement,Lookup,我有一个保存数据的对象 DataSoccer: [{ 0: '0.00', 1: '10.4', 2:'100.5', 3:'15.3', 4:'11.2', 5:'15.9'}] 当键值是完整的时,这很简单 DataSoccer[0][1]//返回10.4 问题是现在的索引并不完整 DataSoccer: [{ 0: '0.00', 1.30: '10.4', 2.40:'100.5', 3.40:'15.3', 4.5:'11.2', 5:'15.9'}] 所以我得到一个用户输入,

我有一个保存数据的对象

 DataSoccer: [{ 0: '0.00', 1: '10.4', 2:'100.5', 3:'15.3', 4:'11.2', 5:'15.9'}]
当键值是完整的时,这很简单

DataSoccer[0][1]//返回10.4

问题是现在的索引并不完整

  DataSoccer: [{ 0: '0.00', 1.30: '10.4', 2.40:'100.5', 3.40:'15.3', 4.5:'11.2', 5:'15.9'}]
所以我得到一个用户输入,比如说2.30,它应该返回10.4(第二个索引)

目前我有一个if语句

if (value == 0 {
return 0.00
}
else if (value <= 1.30) {
   return 10.4
}

else if (value > 1.30 value < 2.40) {
   return 100.5
}
if(值==0{
返回0.00
}
否则如果(值1.30值<2.40){
返回100.5
}

您可以想象,使用if-else的查找功能会变得相当麻烦,并且想知道是否有更好的方法?

通过一次迭代获得值

函数getValue(p){
返回对象[object.keys(object).reduce(函数(r,k){
返回k p?r:k;
},未定义)];
}
var object={0:'0.00',1.30:'10.4',2.40:'100.5',3.40:'15.3',4.5:'11.2',5:'15.9'};
document.write(“”+JSON.stringify(getValue(2.3),0,4)+’;
试试这个

VarDataSoccer=[{0:'0.00',1.30:'10.4',2.40:'100.5',3.40:'15.3',4.5:'11.2',5:'15.9'}]; //对DataSoccer[0]中的所有键进行排序 var sortedKeys=Object.keys(DataSoccer[0]).sort(函数(a,b){return parseFloat(a)-parseFloat(b)}); //获取小于2.3(即1.3)的值 var smallerKey=sortedKeys.filter(函数(val){return val<2.3}).pop(); //获取下一个值,即1.3之后的2.4 var actualKey=sortedkey[sortedkey.indexOf(smallerKey)+1]; //警告值为2.4
警报(“值为”+DataSoccer[0][actualKey]);//访问值ar 2.4您的数组只有一个元素(一个具有所有这些属性和值的对象)。为什么不使用数组来保存它们呢?好的,数组可以,但不能解决外观问题?转换为字符串可能会删除零。
DataSoccer[0][“1.3”]
。input 2.3-->10.4是一个输入错误吗?或者你真的想要“最近的”邻居吗?为什么2.3应该返回10.4而不是100.5?用户想要访问2.30(它不是数组的一部分)@亲爱的downvoter请告诉我我错过了什么?