使用jQuery实现Javascript高效的搜索数组

前端之家收集整理的这篇文章主要介绍了使用jQuery实现Javascript高效的搜索数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的 JavaScript知识存在差距.我想搜索特定值的对象值数组并返回它.

在我编写JavaScript的那一年里,我一直在实现它:

var itemClicked = (function(){

  var retval;

  //Note self.inventory.itemsArray is an array of JS objects

  $(self.inventory.itemsArray).each(function(i){
    if(parseInt(this.id) === parseInt(idOfItem)){
      retval = this;
      return false;
    }
  });

  return retval;

})();

它有效,但我确信任何东西都有更优雅的方式.请告诉我!

编辑 – 解决方

感谢@gdoron,他的回答如下.

var myVar = $(self.owner.itemsArray).filter(function(){
   return parseInt(this.id) == parseInt(recItemID);
}).get(0);

注意:最后添加了.get(0),因为myVar被包装为jQuery对象.

解决方法

本机jQuery函数filter
$(data).filter(function(){
    return this.id == "foo";
});

它比你拥有的代码短,更重要的是更具可读性.
关于效率,它将迭代集合中的所有元素以找到尽可能多的匹配,但我几乎不相信它将成为您应用程序的瓶颈,不要专注于微观优化.

我建议你阅读关于Which is faster的Eric Lipper博客.

您也可以按照@Mattias Buelens的建议使用grep

$.grep(data,function(ele){
    retun ele.id == "foo";
});

猜你在找的jQuery相关文章