Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- function* merge(iterable1, iterable2) {
- let iter1 = iterable1[Symbol.iterator]();
- let iter2 = iterable2[Symbol.iterator]();
- let a = iter1.next();
- let b = iter2.next();
- let isFirst;
- while(!a.done && !b.done) {
- if (a.value <= b.value) {
- yield a.value;
- isFirst = true;
- }
- else {
- yield b.value;
- isFirst = false;
- }
- if (isFirst) {
- a = iter1.next();
- }
- else {
- b = iter2.next();
- }
- }
- if (!a.done) {
- yield a.value;
- yield* iter1;
- }
- if (!b.done) {
- yield b.value;
- yield* iter2;
- }
- }
- console.log(...merge([1, 3, 9], [2, 5, 11, 15])); //1 2 3 5 9 11 15
Add Comment
Please, Sign In to add comment