0

假设我有一个看起来像这样的全局对象:

var TheFruits = {

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

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

function GetReferences(TheArrayOfIDs) {

   var TheArrayOfReferences = [];

   return TheArrayOfReferences;
}

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

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

谢谢。

4

3 回答 3

2

您只需执行一个循环,因为键查找是内置的:

var TheArrayOfReferences = TheArrayOfIDs.map(function(id){return TheFruits[id]});
于 2013-05-27T14:42:56.680 回答
2

您不需要第二个循环:

var results = [];
for (var i = 0; i < ids.length; i++)
    results.push(fruits[ids[i]]);
于 2013-05-27T14:42:56.870 回答
1

类似的东西应该可以工作:

var i = 0, l = TheArrayOfIDs.length;
for (i = 0; i < l; i++)
    TheArrayOfReferences.push(TheFruits[TheArrayOfIDs[i]]);
于 2013-05-27T14:43:11.480 回答