从对象键获取引用数组的最快方法

时间:2013-05-27 14:40:26

标签: javascript jquery

假设我有一个如下所示的全局对象:

var TheFruits = {

   323: {},
   463: {},
   223: {} ..... // can be thousands of properties
}

基本上,键是ID,值本身就是对象。现在假设我有一个ID数组,我将其传递给函数,我希望该函数返回一个对全局对象ID匹配的值的引用数组(即没有深拷贝)。像这样:

function GetReferences(TheArrayOfIDs) {

   var TheArrayOfReferences = [];

   return TheArrayOfReferences;
}

现在我知道我可以写一个迭代OverArrayOfIDs的for循环,然后在每次迭代时循环遍历对象键,但那是循环中的循环。所以我正在寻找最快的方法,并且可以使用jquery。

基本上,如果TheArrayOfIDs = [323, 463, 223];TheArrayOfReferences =[TheFruit.323, TheFruit.463, TheFruit.223];

感谢。

3 个答案:

答案 0 :(得分:2)

内置键查找时,您只需执行一个循环:

var TheArrayOfReferences = TheArrayOfIDs.map(function(id){return TheFruits[id]});

答案 1 :(得分:2)

您不需要第二个循环:

var results = [];
for (var i = 0; i < ids.length; i++)
    results.push(fruits[ids[i]]);

答案 2 :(得分:1)

这样的事情应该有效:

var i = 0, l = TheArrayOfIDs.length;
for (i = 0; i < l; i++)
    TheArrayOfReferences.push(TheFruits[TheArrayOfIDs[i]]);