我正在尝试在我的项目中实现此代码:http://jsfiddle.net/wQysh/351/。
一切都很好,除了这一行:
t = _.findWhere(sc, { id : Number(a.trim()) });
他们使用了underscorejs,我想在不使用其他库的情况下将其转换为JQuery。
我查看了文档并说明了:
findWhere_.findWhere(list,properties)
查看列表并返回与属性中列出的所有键值对匹配的第一个值。
如果未找到匹配项,或者list为空,则返回undefined。
但我仍然对此感到困惑,因为我不确定究竟要返回什么(作为第一个值)。任何人都可以给我一个替代该行的JQuery吗?
提前致谢..
答案 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) });