2

在这个问题中,答案代码之一是:

var arrays = [[1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2]];

_.map(_.zip.apply(_, arrays), function(pieces) {
     return _.reduce(pieces, function(m, p) {return m+p;}, 0);
});

apply(_, arrays)我不明白有什么_关系。

4

2 回答 2

5

apply调用相当于

_.zip([1,2,3,4,5,6], [1,1,1,1,1,1], [2,2,2,2,2,2])

apply确保zip使用正确的上下文(this)调用的第一个参数通常是_Underscore 的命名空间-构造函数-对象。实际上它并没有在zip函数中使用,所以我们可以省略它并通过nullorundefined代替。

于 2013-10-16T13:14:02.513 回答
1

没有什么太大的意义_

见官方页面demo http://underscorejs.org/#zip

这里的要点是apply,它接受第二个参数arrays作为参数。

所以_.zip(arr1, arr2, arr3)实际上是一样的_.zip.apply( null,[arr1,arr2, arr3])

作为this关键字的第一个参数可以是任何东西。的选择_可能是一个模因,并强调了_. 跟着它走:) 在此处输入图像描述

于 2013-10-16T13:17:24.997 回答