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

fastest way of getting an array of references from object keys

本文关键字:方法 数组 引用 对象 获取      更新时间:2023-09-26

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

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

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

function GetReferences(TheArrayOfIDs) {
   var TheArrayOfReferences = [];
   return TheArrayOfReferences;
}

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

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

谢谢。

你不需要第二个循环:

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

你只需要做一个循环,因为键查找是内置的:

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

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

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