Javascript 从JQuery$中返回值的最优雅的方法。每个?

Javascript 从JQuery$中返回值的最优雅的方法。每个?,javascript,jquery,Javascript,Jquery,我想知道是否有一种更优雅的方法可以从我粘贴在下面的函数中返回值:“getImageURLforPOICategory” 正如您所看到的,我使用JQuery的“each”函数迭代对象数组,当我找到匹配值时,我希望从“each”循环返回结果,然后从包含each循环的函数返回结果 我使用了一个局部变量来“缓存”它,然后返回它。我不完全确定这是不是最好的方法?是否有一种直接从每个循环中返回值的方法 Tracker.getImageURLforPOICategory = function (POICate

我想知道是否有一种更优雅的方法可以从我粘贴在下面的函数中返回值:“getImageURLforPOICategory”

正如您所看到的,我使用JQuery的“each”函数迭代对象数组,当我找到匹配值时,我希望从“each”循环返回结果,然后从包含each循环的函数返回结果

我使用了一个局部变量来“缓存”它,然后返回它。我不完全确定这是不是最好的方法?是否有一种直接从每个循环中返回值的方法

Tracker.getImageURLforPOICategory = function (POICategoryID) {
 var url;
 $.each(Tracker.pointofinterestcategories, function () {
  if (this.id === POICategoryID) {
   url = this.imageurl;
   return;
  }
 }
 );
 return url;
};
谢谢你的阅读

干杯


Duncan

不,不能从
.each()
返回值

如果执行
操作,则返回false它将停止循环,因此它的运行时间不会超过需要的时间,但您需要像现在这样使用变量

如果您不使用
$.each()
,而是使用
for
循环,您将能够:

return Tracker.pointofinterestcategories[ i ].imageurl

不过我还是会使用for循环

Tracker.getImageURLforPOICategory = function (POICategoryID) {
    return $.grep(Tracker.pointofinterestcategories, function (item) {
        return item.id === POICategoryID;
    })[0].imageurl;
}

非常感谢。我想,恢复到标准For循环对于这样一个简单的操作是有意义的。干杯,邓肯。很好。。几天前晚上,我看到了grep函数,并计划对其进行探索。。谢谢你的例子!