_.findWhere从underscorejs到JQuery

时间:2015-10-04 11:33:47

标签: javascript jquery underscore.js

我正在尝试在我的项目中实现此代码:http://jsfiddle.net/wQysh/351/

一切都很好,除了这一行:

t = _.findWhere(sc, { id : Number(a.trim()) });

他们使用了underscorejs,我想在不使用其他库的情况下将其转换为JQuery。

我查看了文档并说明了:

  

findWhere_.findWhere(list,properties)

     

查看列表并返回与属性中列出的所有键值对匹配的第一个值。

     

如果未找到匹配项,或者list为空,则返回undefined。

但我仍然对此感到困惑,因为我不确定究竟要返回什么(作为第一个值)。任何人都可以给我一个替代该行的JQuery吗?

提前致谢..

2 个答案:

答案 0 :(得分:1)

如果您不具备_.findWhere()的通用性质,则可以使用简单的while循环,并将id与a(fiddle)的数值进行比较:

t = 0; // t is used as a counter
aValue = Number(a.trim()); // assign the value to a variable instead of iterating it
while (t < sc.length && sc[t].id !== aValue) { t++; }; // find the index where the id is the as the aValue

t < sc.length && toSet.push(sc[t]); // if t is less the sc.length we found the item in the array

如果您需要findWhere而不需要下划线,请尝试使用此gist

答案 1 :(得分:0)

我也在我的项目中使用了这个例子。并且还需要使用JQuery而不是Underscore。

这是我的解决方案:

t = sc.filter(function (el) { return el.id === a });

它对我来说很完美;

如果您使用数字作为ids,您也可以将a转换为整数

t = sc.filter(function (el) { return el.id === parseInt(a, 10) });