当前位置: 首页 > 文档资料 > Lazy.js 英文文档 >

zip

优质
小牛编辑
131浏览
2023-12-01

Creates a new sequence by combining the elements from this sequence with corresponding elements from the specified array(s).

Signature

Sequence.zip = function(var_args) { /*...*/ }
Sequence.zip = function zip(var_args) {
  if (arguments.length === 1) {
return new SimpleZippedSequence(this, (/** @type {Array} */ var_args));
  } else {
return new ZippedSequence(this, arraySlice.call(arguments, 0));
  }
}
NameType(s)Description
var_args...Array

One or more arrays of elements to combine with those of this sequence.

returnsSequence

The new sequence.

Examples

Lazy([1, 2]).zip([3, 4])     // sequence: [[1, 3], [2, 4]]
Lazy([]).zip([0])            // sequence: [[undefined, 0]]
Lazy([0]).zip([])            // sequence: [[0, undefined]]
Lazy([]).zip([1, 2], [3, 4]) // sequence: [[undefined, 1, 3], [undefined, 2, 4]]
Lazy([]).zip([1], [2, 3])    // sequence: [[undefined, 1, 2], [undefined, undefined, 3]]
Lazy([1, 2]).zip([3], [4])   // sequence: [[1, 3, 4], [2, undefined, undefined]]

Benchmarks

var smArrL = Lazy.range(10).toArray(),
smArrR = Lazy.range(10, 20).toArray(),
lgArrL = Lazy.range(100).toArray(),
lgArrR = Lazy.range(100, 200).toArray();

Lazy(smArrL).zip(smArrR).each(Lazy.noop) // lazy - zipping 10-element arrays
Lazy(lgArrL).zip(lgArrR).each(Lazy.noop) // lazy - zipping 100-element arrays
_.each(_.zip(smArrL, smArrR), _.noop)    // lodash - zipping 10-element arrays
_.each(_.zip(lgArrL, lgArrR), _.noop)    // lodash - zipping 100-element arrays
Implementationzipping 10-element arrayszipping 100-element arrays
lazy
lodash