假设我有一个如下所示的全局对象:
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];
感谢。
答案 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]]);