Re: Array.prototype.joinWith(iterable)

2019-08-19 Thread Naveen Chawla
OK thanks for the link On Mon, 19 Aug 2019 at 11:41, Andrea Giammarchi wrote: > Naveen, please read more about template literals tags, thanks. > > > https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates > > On Mon, Aug 19, 2019 at 12:16 PM Naveen

Re: Array.prototype.joinWith(iterable)

2019-08-19 Thread Andrea Giammarchi
Naveen, please read more about template literals tags, thanks. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#Tagged_templates On Mon, Aug 19, 2019 at 12:16 PM Naveen Chawla wrote: > HTML tags? Afraid I still don't get that aspect. Perhaps my reading style

Re: Array.prototype.joinWith(iterable)

2019-08-19 Thread Naveen Chawla
HTML tags? Afraid I still don't get that aspect. Perhaps my reading style is not matching your writing style. I understood everything else. I would still need a really simple example(/s) completed with sample input data from start to finish (for tags). Anyway from what I'm seeing so far I think

Re: Array.prototype.joinWith(iterable)

2019-08-19 Thread Andrea Giammarchi
A lot of libraries flatten template tags for a reason or another. The JSX oriented `htm` project [1], as example, does that to obtain a single key, since TypeScript has broken template literals, and avoiding duplicated work per same literal is a common template tag based libraries use case. Here

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Naveen Chawla
I don't know what you mean by tags. I guess this is outside my experience area. I'd love to know the use case. Hope I'm not bothering you or anyone else reading this thread On Fri, 16 Aug 2019, 21:00 Jordan Harband, wrote: > Can you elaborate a bit more on how this is a *common* case in the

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Jordan Harband
Can you elaborate a bit more on how this is a *common* case in the wider ecosystem? On Fri, Aug 16, 2019 at 5:29 AM Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > early reply "which otehr cases"? this is just an example: > > [2019, 08, 16, 14, 28, 30].map(i => i < 10 ? ('0' + i)

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Andrea Giammarchi
early reply "which otehr cases"? this is just an example: [2019, 08, 16, 14, 28, 30].map(i => i < 10 ? ('0' + i) : i).joinWith('--T::.'); On Fri, Aug 16, 2019 at 2:24 PM Andrea Giammarchi < andrea.giammar...@gmail.com> wrote: > `this ${Symbol('throws')} an error`, so anything that cannot

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Andrea Giammarchi
`this ${Symbol('throws')} an error`, so anything that cannot be represented as string should throw too, as it is for `[1, 2, 3].join(Symbol())`. In few words, everything described as parameter for the `Array.prototype.join(param)` should be described as the iterable value, nothng new to add,

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Naveen Chawla
Cool. I get it now apart from the "templated string" example. I'm not very knowledgable about templated strings but on the face it looks like 'a${x}b${y}' already inserts x and y into the string, so I'm not sure what else is happening with your proposed method? Clearly I've missed something.

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Andrea Giammarchi
given an array, it joins it through the values of the iterable argument, without ever resulting to undefined ['a', 'b', 'c'].joinWith(['-']) would produce "a-b-c" ['a', 'b', 'c'].joinWith([1, 2]) would produce "a1b2c" ['a', 'b', 'c'].joinWith('012') would produce "a0b1c" note the string, as

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Naveen Chawla
I'm just not seeing what it's supposed to do. If you could give a brief explanation of the array method, and the string method then of course I would get it. I know it would seem obvious to you from the examples alone, it's just not to me. On Fri, 16 Aug 2019 at 08:32, Andrea Giammarchi wrote:

Re: Array.prototype.joinWith(iterable)

2019-08-16 Thread Andrea Giammarchi
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

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Isiah Meadows
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

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Andrea Giammarchi
There is a whole example that produces a string, like join does, using the second argument iterable to fill the "junctions" ... which part is not clear in the test case? ```js console.log(['a', 'b', 'c', 'd'].joinWith([1, 2])); // a1b2c1d function tag2str(template, ...values) { return

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Naveen Chawla
"weave"? (I've likely missed the purpose of the method) On Thu, 15 Aug 2019, 18:12 Andrea Giammarchi, 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

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Andrea Giammarchi
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 wrote: > https://lodash.com/docs/#zip >

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Michał Wadas
https://lodash.com/docs/#zip https://docs.python.org/3/library/functions.html#zip On Thu, 15 Aug 2019, 15:34 Andrea Giammarchi, wrote: > >1. the suggested name is just ... suggested, I don't have strong >opinion on it, it just `join` values through other values >2. what's

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Andrea Giammarchi
1. the suggested name is just ... suggested, I don't have strong opinion on it, it just `join` values through other values 2. what's `Array.zip` ? I've no idea On Thu, Aug 15, 2019 at 12:53 PM Michał Wadas wrote: > I would rather see Array.zip, it covers this use case. > > On Thu, 15

Re: Array.prototype.joinWith(iterable)

2019-08-15 Thread Michał Wadas
I would rather see Array.zip, it covers this use case. On Thu, 15 Aug 2019, 10:50 Andrea Giammarchi, 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) { >

Array.prototype.joinWith(iterable)

2019-08-15 Thread Andrea Giammarchi
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