For that, I'd rather see an `interleave` that just rotates through all its arguments. It'd be basically sugar for `.zip().flat()`, but an implementation could optimize the heck out of it. (In particular, they could iterate through them one-by-one and only allocate once, not in the hot loop, so it'd be fast.)
I at one point had it in my list of wishlist proposals, but it somehow disappeared. I've since recreated it: https://github.com/isiahmeadows/es-stdlib-proposals/blob/master/proposals/array/interleave.md ----- Isiah Meadows [email protected] www.isiahmeadows.com On Thu, Aug 15, 2019 at 1:12 PM Andrea Giammarchi <[email protected]> wrote: > > That;s not useful for template literals tags though > > _.zip(['a', 'b', 'c'], [1, 2]); > [["a", 1], ["b", 2], ["c", undefined]] > > it basically does nothing I've proposed ... any other name suggestion? > > On Thu, Aug 15, 2019 at 3:40 PM Michał Wadas <[email protected]> wrote: >> >> https://lodash.com/docs/#zip >> https://docs.python.org/3/library/functions.html#zip >> >> On Thu, 15 Aug 2019, 15:34 Andrea Giammarchi, <[email protected]> >> wrote: >>> >>> the suggested name is just ... suggested, I don't have strong opinion on >>> it, it just `join` values through other values >>> what's `Array.zip` ? I've no idea >>> >>> >>> On Thu, Aug 15, 2019 at 12:53 PM Michał Wadas <[email protected]> wrote: >>>> >>>> I would rather see Array.zip, it covers this use case. >>>> >>>> On Thu, 15 Aug 2019, 10:50 Andrea Giammarchi, >>>> <[email protected]> wrote: >>>>> >>>>> >>>>> I wonder if there's any interest in adding another handy Array method as >>>>> joinWith could be: >>>>> >>>>> ```js >>>>> // proposal example >>>>> Array.prototype.joinWith = function (values) { >>>>> const {length} = this; >>>>> if (length < 2) >>>>> return this.join(''); >>>>> const out = [this[0]]; >>>>> const len = values.length; >>>>> for (let i = 1; i < length; i++) { >>>>> console.log(i, len); >>>>> out.push(values[(i - 1) % len], this[i]); >>>>> } >>>>> return out.join(''); >>>>> }; >>>>> ``` >>>>> >>>>> The goal is to simplify joining array entries through not the same value, >>>>> example: >>>>> >>>>> ```js >>>>> console.log(['a', 'b', 'c', 'd'].joinWith([1, 2])); >>>>> // a1b2c1d >>>>> >>>>> function tag2str(template, ...values) { >>>>> return template.joinWith(values); >>>>> } >>>>> >>>>> tag2str`a${1}b${2}c`; >>>>> // "a1b2c" >>>>> ``` >>>>> >>>>> Throughts? >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> [email protected] >>>>> https://mail.mozilla.org/listinfo/es-discuss > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

