Array.prototype.replace
Ben Wiley
therealbenwiley at gmail.com
Tue Jul 10 05:31:40 UTC 2018
P.S. sorry for the double post but should mention the word "convenient"
came from nowhere (except autocorrect) in my last message. I wasn't calling
your example "inconvenient." :)
Le mar. 10 juill. 2018 01 h 26, Ben Wiley <therealbenwiley at gmail.com> a
écrit :
> Oops, meant to send to the rest of the list.
>
> Thanks for the feedback Isiah.
> 1. Fair!
> 2. Could you elaborate? I believe that's what this is, though I might be
> missing your point.
> 3. a. As I noted on GitHub I also considered that syntax originally. I'm
> torn on it because allowing out-of-order index definitions in an array
> little seems a bit wacky, but maybe it's not so bad?
> b. Hmm, this sounds interesting but I'm not sure I totally follow. Could
> you give a more convenient concrete example of the array pattern type for
> the example you're discussing?
>
> Ben
>
>
> Le mar. 10 juill. 2018 00 h 15, Isiah Meadows <isiahmeadows at gmail.com> a
> écrit :
>
>> I like the idea, but there's a few tweaks I think could be made:
>>
>> 1. `replace` reads like you're doing a string or subarray replace.
>> This proposal sounds more like an `update`.
>> 2. If you allow it to carry the semantics of `slice()` + `array[index]
>> = value`, engines can implement it a bit quicker.
>> 3. IMHO, this belongs as syntax, either in addition or in place of
>> this proposal's method. If nothing else, it's for consistency with
>> object spread, but it also allows you to spread iterables similarly,
>> something like `[...iter, index: value]`. We could also introduce that
>> as an array pattern type, so we don't need to use elisions so
>> frequently to skip values in array destructuring patterns (think:
>> `regexp.exec(string)` results, when you don't care about all the
>> groups). There's been times where I've had upwards of 3-4 elisions all
>> clustered together, and that gets unreadable in a hurry.
>>
>> -----
>>
>> Isiah Meadows
>> me at isiahmeadows.com
>> www.isiahmeadows.com
>>
>>
>> On Mon, Jul 9, 2018 at 11:42 PM, Ben Wiley <therealbenwiley at gmail.com>
>> wrote:
>> > Hi ECMAScript folks,
>> >
>> > I'm brand new to this process and I've drafted a proposal (and
>> polyfill) for
>> > a new Array.prototype.replace method. In the vein of Array concat,
>> String
>> > replace and the new Object rest spread, Array replace provides a way to
>> > shallow clone an array and replace an element in a single statement.
>> >
>> > Here's the GitHub repo, which outlines API, motivation, use cases,
>> > alternatives, and polyfill usage:
>> > https://github.com/benwiley4000/array-replace
>> >
>> > Array replace shouldn't be considered an across-the-board substitute for
>> > Array.prototype.splice (which mutates the array) and wouldn't be ideal
>> for
>> > performance critical applications handling very large arrays. It is well
>> > suited for application logic where immutability is desired - a trend
>> growing
>> > in the Javascript community.
>> >
>> > Most of the application areas of object rest spread composition syntax
>> (for
>> > building objects, not destructuring them) are also application areas for
>> > Array.prototype.replace, when your object happens to be an array.
>> >
>> > I'm looking forward to any feedback and I'd also love for a champion to
>> step
>> > in and help, if you think this is an ok idea.
>> >
>> > Thanks!
>> > Ben
>> >
>> > _______________________________________________
>> > es-discuss mailing list
>> > es-discuss at mozilla.org
>> > https://mail.mozilla.org/listinfo/es-discuss
>> >
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20180710/bcf0d44a/attachment.html>
More information about the es-discuss
mailing list