zip
zip(Sequence...[, iterator = Prototype.K]) -> Array
将多个(两个及以上)序列按照顺序配对合并(想像一下拉链拉上的情形)为一个包含一序列元组的数组。
元组由每个原始序列的具有相同索引的元素组合而成。如果指定了可选的 iterator
参数,则元组由
iterator
指定的函数生成。
以前没有使用过 zip
函数的人(其实也就是没有 Haskell 或 Ruby 工作经验),
对于理解这个函数的行为可能会有一些困难。这里有一些例子,希望能够对你有所帮助。
样例
var firstNames = ['Justin', 'Mislav', 'Tobie', 'Christophe'];
var lastNames = ['Palmer', 'Marohnić', 'Langel', 'Porteneuve'];
firstNames.zip(lastNames)
// -> [['Justin', 'Palmer'], ['Mislav', 'Marohnić'],
// ['Tobie', 'Langel'], ['Christophe', 'Porteneuve']]
firstNames.zip(lastNames, function(a) {
return a.join(' ');
})
// -> ['Justin Palmer', 'Mislav Marohnić', 'Tobie Langel', 'Christophe Porteneuve']
var cities = ['Memphis', 'Zagreb', 'Montreal', 'Paris'];
firstNames.zip(lastNames, cities, function(p) {
return p[0] + ' ' + p[1] + ', ' + p[2];
})
// -> ['Justin Palmer, Memphis', 'Mislav Marohnić, Zagreb',
// 'Tobie Langel, Montreal', 'Christophe Porteneuve, Paris']
firstNames.zip($R(1, 100), function(a) {
return a.reverse().join('.');
})
// -> ['1. Justin', '2. Mislav', '3. Tobie', '4. Christophe']