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/[email protected]/0?redirect=mailto%3Amikesamuel%40gmail.com&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/[email protected]/1?redirect=https%3A%2F%2Fesdiscuss.org%2Ftopic%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/[email protected]/2?redirect=http%3A%2F%2Fdownload.oracle.com%2Fjavase%2F7%2Fdocs%2Fapi%2Fjava%2Flang%2FStringBuilder.html%23reverse()&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t>
>>>> """
>>>>
>>>> On Sat, Mar 17, 2018 at 1:41 PM, Grigory Hatsevich <
>>>> [email protected]
>>>> <https://link.getmailspring.com/link/[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/[email protected]/4?redirect=mailto%3Aes-discuss%40mozilla.org&recipient=Zy5oYXRzZXZpY2hAZ21haWwuY29t>
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>>> <https://link.getmailspring.com/link/[email protected]/5?redirect=https%3A%2F%2Fmail.mozilla.org%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
>
>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to