If more than one type of reversal makes sense, are there any good reasons against covering this by an optional `mode` argument? This approach would be analogous to `String.prototype.normalize`.
On Sunday, March 18, 2018 9:38:18 PM CET Mathias Bynens wrote: > For arrays, indexing is unambiguous: `array[42]` is whatever value you put > there. As a result, it’s clear what it means to “reverse” an array. > > This is not the case for strings, where indexing is inherently ambiguous. > Should `string[42]` index by UCS-2/UTF-16 code unit? By Unicode code point? > By grapheme cluster? > > > > On Mon, Mar 19, 2018 at 6:28 AM, Felipe Nascimento de Moura < > > [email protected]> wrote: > > I have had to use that one, parsing texts and I remember I had to reverse > > strings that represented tokens...but that was very specific. > > > > What I would like to see in strings would be something like "firstCase" > > for transforming "felipe" into "Felipe" for example. > > I always have to use something like `str[0].toUpperCase() + str.slice(1)`. > > > > The only reason I would defend the "reverse" method in strings is because > > it makes sense. > > I think JavaScript is very intuitive, and, as Arrays do have the "reverse" > > method, that simply makes sense to have it in strings as well. > > > > Cheers. > > > > > > [ ]s > > > > *--* > > > > *Felipe N. Moura* > > Web Developer, Google Developer Expert > > <https://developers.google.com/experts/people/felipe-moura>, Founder of > > BrazilJS <https://braziljs.org/> and Nasc <http://nasc.io/>. > > > > Website: http://felipenmoura.com / http://nasc.io/ > > Twitter: @felipenmoura <http://twitter.com/felipenmoura> > > Facebook: http://fb.com/felipenmoura > > LinkedIn: http://goo.gl/qGmq > > --------------------------------- > > *Changing the world* is the least I expect from myself! > > > > On Sun, Mar 18, 2018 at 12:00 PM, Mark Davis ☕️ <[email protected]> > > > > wrote: > >> .reverse would only be reasonable for a subset of characters supported by > >> Unicode. Its primary cited use case is for a particular educational > >> example, when there are probably thousands of similar examples of > >> educational snippets that would be rarely used in a production > >> environment. Given that, it would be far better for those people who > >> really need it to just provide that to their students as a provided > >> function for the sake of that example. > >> > >> Mark > >> > >> On Sun, Mar 18, 2018 at 8:56 AM, Grigory Hatsevich <[email protected] > >> > >> > wrote: > >>> "This would remove the challenge and actively worsen their learning > >>> process" -- this is not true. You can see it e.g. by looking at the > >>> specific task I was talking about: > >>> > >>> "Given a string, find the shortest possible string which can be achieved > >>> by adding characters to the end of initial string to make it a > >>> palindrome." > >>> > >>> This is my code for this task: > >>> > >>> function buildPalindrome(s){ > >>> > >>> String.prototype.reverse=function(){ > >>> > >>> return this.split('').reverse().join('') > >>> > >>> } > >>> > >>> function isPalindrome(s){ > >>> > >>> return s===s.reverse() > >>> > >>> } > >>> for (i=0;i<s.length;i++){ > >>> > >>> first=s.slice(0,i); > >>> rest=s.slice(i); > >>> if(isPalindrome(rest)){ > >>> > >>> return s+first.reverse() > >>> > >>> } > >>> > >>> } > >>> > >>> } > >>> > >>> > >>> As you see, the essence of this challenge is not in the process of > >>> reversing a string. Having a reverse() method just makes the code more > >>> readable -- comparing to alternative when one would have to write > >>> .split('').reverse().join('') each time instead of just .reverse() > >>> > >>> On Sun, Mar 18, 2018 at 2:38 PM, Frederick Stark <[email protected]> > >>> > >>> wrote: > >>>> The point of a coding task for a beginner is to practice their problem > >>>> solving skills to solve the task. This would remove the challenge and > >>>> actively worsen their learning process > >>>> > >>>> > >>>> On Mar 18 2018, at 6:26 pm, Grigory Hatsevich <[email protected]> > >>>> wrote: > >>>> > >>>> > >>>> My use case is solving coding tasks about palindromes on > >>>> codefights.com. > >>>> Not sure if that counts as "real-world", but probably a lot of > >>>> beginning > >>>> developers encounter such tasks at least once. > >>>> > >>>> > >>>> > >>>> > >>>> On Sun, 18 Mar 2018 06:41:46 +0700, Mathias Bynens <[email protected]> > >>>> wrote: > >>>> > >>>> So far no one has provided a real-world use case. > >>>> > >>>> On Mar 18, 2018 10:15, "Mike Samuel" <[email protected] > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/0?redirect=mailto%3Amikesamuel%40gmail.c > >>>> om&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t>> wrote: > >>>> > >>>> Previous discussion: https://esdiscuss.org/topic/wi > >>>> ki-updates-for-string-number-and-math-libraries#content-1 > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/1?redirect=https%3A%2F%2Fesdiscuss.org%2 > >>>> Ftopic%2Fwiki-updates-for-string-number-and-math-libraries%23content-1& > >>>> recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t> > >>>> > >>>> """ > >>>> String.prototype.reverse(), as proposed, corrupts supplementary > >>>> characters. Clause 6 of Ecma-262 redefines the word "character" as "a > >>>> 16-bit unsigned value used to represent a single 16-bit unit of text", > >>>> that > >>>> is, a UTF-16 code unit. In contrast, the phrase "Unicode character" is > >>>> used > >>>> for Unicode code points. For reverse(), this means that the proposed > >>>> spec > >>>> will reverse the sequence of the two UTF-16 code units representing a > >>>> supplementary character, resulting in corruption. If this function is > >>>> really needed (is it? for what?), it should preserve the order of > >>>> surrogate > >>>> pairs, as does java.lang.StringBuilder.reverse: > >>>> download.oracle.com/javase/7/docs/api/java/lang/StringBuil > >>>> der.html#reverse() > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/2?redirect=http%3A%2F%2Fdownload.oracle. > >>>> com%2Fjavase%2F7%2Fdocs%2Fapi%2Fjava%2Flang%2FStringBuilder.html%23reve > >>>> rse()&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t> """ > >>>> > >>>> On Sat, Mar 17, 2018 at 1:41 PM, Grigory Hatsevich < > >>>> [email protected] > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/3?redirect=mailto%3Ag.hatsevich%40gmail. > >>>> com&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t>> wrote: > >>>> > >>>> Hi! I would propose to add reverse() method to strings. Something > >>>> equivalent to the following: > >>>> > >>>> String.prototype.reverse = function(){ > >>>> > >>>> return this.split('').reverse().join('') > >>>> > >>>> } > >>>> > >>>> It seems natural to have such method. Why not? > >>>> > >>>> > >>>> > >>>> > >>>> _______________________________________________ > >>>> es-discuss mailing list > >>>> [email protected] > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/4?redirect=mailto%3Aes-discuss%40mozilla > >>>> .org&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t> > >>>> https://mail.mozilla.org/listinfo/es-discuss > >>>> <https://link.getmailspring.com/link/1521358598.local-593d9031-9a3d-v1. > >>>> [email protected]/5?redirect=https%3A%2F%2Fmail.mozilla.or > >>>> g%2Flistinfo%2Fes-discuss&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t> > >>>> > >>>> > >>>> > >>>> > >>>> _______________________________________________ > >>>> es-discuss mailing list > >>>> [email protected] > >>>> https://mail.mozilla.org/listinfo/es-discuss > >>>> > >>>> [image: Open Tracking] > >>> > >>> _______________________________________________ > >>> 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
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

