我想使用Underscore从列表中返回每一秒项。
我想我可以这样做:
var i = 0;
_.filter([1,2,3,4...], function(item) {
i++;
return (i%2 == 0);
});
但是有更优雅的方式,原生于Underscore?
答案 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);