下划线:它可以通过传递总数和对象来构建数组吗?

时间:2014-01-14 01:10:26

标签: underscore.js

我很好奇我是否可以使用下划线来构建虚拟数据,如下所示:

var things = [];

for (var i = 10; i--; ) {
   var thing = { id: i };
   things.push( thing ) 
}

这可能是下划线吗?是否有一些函数可以传递一个total和一个对象并返回一个数组?

1 个答案:

答案 0 :(得分:3)

您可以使用_.times

  

_.times(n, iterator, [context])

     

调用给定的迭代器函数 n 次。使用索引参数调用迭代器的每次调用。生成返回值的数组。

所以:

var things = _(10).times(function(i) { return { id: i + 1 } });

或者如果您需要它们与for循环的顺序相同:

var things = _(10).times(function(i) { return { id: i + 1 } })
                  .reverse();

演示:http://jsfiddle.net/ambiguous/arZB8/