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

时间:2013-12-18 15:01:52

标签: javascript arrays

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();

我不知道如何写我的请求。 我有一个值(250),需要测试数组,直到我的数组的ID小于我的“FileSize”。在我的例子中,结果应该是1.97。

2 个答案:

答案 0 :(得分:0)

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

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

这样,您可以按升序轻松排序Ana数组(关于每对夫妇的第一个元素的升序)。您可以使用简单的Anawhile循环遍历您的for数组,直到达到您的条件。如果您对Ana进行排序,则可以轻松有效地恢复该值。

答案 1 :(得分:0)

不是将文件大小存储为键,而是将整个信息存储为数组中的对象:

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  
}