Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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 需要从ID恢复数组中的值_Javascript_Arrays - Fatal编程技术网

Javascript 需要从ID恢复数组中的值

Javascript 需要从ID恢复数组中的值,javascript,arrays,Javascript,Arrays,我不知道如何写我的请求。 我的值为250,需要测试数组,直到数组的ID小于文件大小。在我的示例中,结果应该是1.97。使用简单数组解决问题可能不是最好的表示。你可以选择一对夫妇: function f() { var FileSize = "250"; var Ana = new Array; Ana["231.78"] = "2.14"; Ana["234.95"] = "2.11"; Ana["238.12"] = "2.08"; Ana["2

我不知道如何写我的请求。
我的值为250,需要测试数组,直到数组的ID小于文件大小。在我的示例中,结果应该是1.97。

使用简单数组解决问题可能不是最好的表示。你可以选择一对夫妇:

function f() {
    var FileSize = "250";
    var Ana = new Array;
    Ana["231.78"] = "2.14";
    Ana["234.95"] = "2.11";
    Ana["238.12"] = "2.08";
    Ana["241.30"] = "2.05";
    Ana["244.47"] = "2.02";
    Ana["250.82"] = "1.97";
    Ana["254.00"] = "1.95";
}
f();

通过这种方式,您可以轻松地按升序对Ana数组进行排序,升序是关于每对数组的第一个元素。通过一个简单的while或for循环,您可以迭代Ana数组,直到达到您的条件。如果对Ana进行排序,则恢复值将变得简单而高效。

与其将文件大小存储为键,不如将整个信息作为对象存储在数组中:

var Ana = [
   [231.78, 2.14],
   ...
   [254.00, 1.95]
];

请注意,数组不能有分数索引。您实际拥有的是一个具有7个自定义属性的零长度数组对象。结果1.97可能是重复的吗?250.82不是大于250吗?
var f = function(fileSize){

var ana = [];
ana.push({fileSize: 231.78, randomThing: 2.14});
ana.push({fileSize: 234.95, randomThing: 2.11});
ana.push({fileSize: 234.95, randomThing: 2.08});
ana.push({fileSize: 241.30, randomThing: 2.05});
ana.push({fileSize: 244.47, randomThing: 2.02});
ana.push({fileSize: 250.82, randomThing: 1.97});
ana.push({fileSize: 254.00, randomThing: 1.95});

for(var i=0; i < ana.length; i++){
    if (ana[i].fileSize > fileSize){
        return ana[i].randomThing;
    }
}

return null; //or something more appropriate, this happens when there is no item greater than fileSize  
}