// ⭐ interleave()// interleaves the values of a list of iterablesfunction*interleave(...iterables) {// iterables -> iteratorslet iterators =iterables.map(it => it[Symbol.iterator]());let i =0; // index of current iterator// while still some iteratorswhile (iterators.length>0) { // if last iterator reached, go back to firstif (i >=iterators.length) i =0;// get next iteration result of current iteratorlet result = iterators[i].next();if (result.done) { // if current iterator done,iterators.splice(i,1); // • remove it. } else { // otherwise, yieldresult.value; // • yield the value i +=1; // • go to next iterator. } }// all iterators donereturn;}// exportmodule.exports= interleave;