calling it again would just apply the same mechanism => "do this element already exist? "remove it" : "add it". in the example, it would just add 1 at the end of array (i.e. just a push), calling it the second time.
``js const a = [1, 2, 3, 2, 1].toggle(1) // mutates the original array removing 1 => [2, 3, 2] a.toggle(1); // mutates the original array adding 1 => [2, 3, 2, 1] ``` On Fri, Feb 7, 2020 at 1:11 PM Scott Rudiger <[email protected]> wrote: > `Array.prototype.filter` seems more versatile (although it doesn't mutate > the original array) since it removes elements based on a function: > > ```js > [1, 2, 3, 2, 1].filter(n => n !== 1); // [2, 3, 2] > ``` > > Since the method is named `toggle`, what happens when you call it on the > same array twice? Do you get the removed elements back? > > ```js > const arr = [1, 2, 3, 2, 1].toggle(1) // mutates the original array > removing 1, resulting in [2, 3, 2] > arr.toggle(1); // ??? > ``` > > On Fri, Feb 7, 2020 at 3:49 AM manuelbarzi <[email protected]> wrote: > >> just a proposal to provide this functionality into array, allowing to add >> / remove items in a toggling mechanism shortcut, avoiding the need to do >> traversing to locate the indexes and remove them next (i.e. by means of a >> polyfill or any other approach). >> >> ```js >> [1, 2, 3, 2, 1].toggle(1) // mutates the original array removing 1, >> resulting in [2, 3, 2] >> ``` >> _______________________________________________ >> 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

