使用Underscore.js从列表中返回每秒项目?

时间:2014-04-08 16:28:42

标签: javascript underscore.js

我想使用Underscore从列表中返回每一秒项。

我想我可以这样做:

var i = 0;
_.filter([1,2,3,4...], function(item) { 
  i++;
  return (i%2 == 0);
});

但是有更优雅的方式,原生于Underscore?

3 个答案:

答案 0 :(得分:3)

_.filter调用的函数也将获得当前索引,作为第二个参数,您可以像这样使用

console.log(_.filter([1, 2, 3, 4], function(item, index) {
    return index % 2 == 0;
}));
# [ 1, 3 ]

由于你想从第二个元素开始,你只需稍微改变一下条件,比如

console.log(_.filter([1, 2, 3, 4], function(item, index) {
    return index % 2 == 1;
}));
# [ 2, 4 ]

或者,您可以以相同的方式使用原生Array.prototype.filter,例如

console.log([1, 2, 3, 4].filter(function(item, index) {
    return index % 2 == 1;
}));

答案 1 :(得分:0)

_.filter([1,2,3,4...], function(item, index) { 
  return (index % 2 == 0);
});

filter谓词接受两个参数 - 项目值和索引值。

答案 2 :(得分:0)

var test = [1,2,3,4];
var tt = _.first(_.rest([5, 4, 3, 2, 1]));
console.log(tt);

Fiddle