Just to re-state: zip from lowdash, does **not** do what my proposed method does ... anything that won't produce the following result is not what I'm proposing
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" On Fri, Aug 16, 2019 at 5:57 AM Isiah Meadows <isiahmead...@gmail.com> wrote: > 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 > cont...@isiahmeadows.com > www.isiahmeadows.com > > > On Thu, Aug 15, 2019 at 1:12 PM Andrea Giammarchi > <andrea.giammar...@gmail.com> 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 <michalwa...@gmail.com> > wrote: > >> > >> https://lodash.com/docs/#zip > >> https://docs.python.org/3/library/functions.html#zip > >> > >> On Thu, 15 Aug 2019, 15:34 Andrea Giammarchi, < > andrea.giammar...@gmail.com> 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 <michalwa...@gmail.com> > wrote: > >>>> > >>>> I would rather see Array.zip, it covers this use case. > >>>> > >>>> On Thu, 15 Aug 2019, 10:50 Andrea Giammarchi, < > andrea.giammar...@gmail.com> 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 > >>>>> es-discuss@mozilla.org > >>>>> https://mail.mozilla.org/listinfo/es-discuss > > > > _______________________________________________ > > es-discuss mailing list > > es-discuss@mozilla.org > > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss