3 ms·
> "test".indexOf("st") == "test".length - "st".length I don't think this is a correct implementation of "endsWith". "testtest".indexOf("st") =/= "testtest".le
by EnigmaticLion 10y ago
> "test".indexOf("st") == "test".length - "st".length
I don't think this is a correct implementation of "endsWith".
"testtest".indexOf("st") =/= "testtest".length - "st".length
- roblabla 10y agoGood point. Should have been "test".substr("test".length - "st".length) === "st" Or is it substring? Might there be an off by one in there? Anyway, this kind of reflexion only proves my point. There's no reason to question what endsWith does, because it's obvious. It's the correct abstraction in many cases.
- pablovidal85 10y agoNegative substr() already does the trick, I don't see the need for endsWith() at all. 'test'.substr(-'st'.length) === 'st'
- roblabla 10y agoThe thing is : 1. You need to know and understand obscure behavior of substr 2. This hides the programmer's true intent. What you want is to know if the string ends with 'st', not that "the 'st'.length last characters of the string is 'st'". Why make it harder on your fellow coworkers to understand what you mean ? If you only do this once, sure, maybe importing a whole module is overkill. But as you write it over and over again, in separate projects, having the code safely tucked away in a reusable module brings complexity down.
- bartl 10y agoYou can even do 'test'.match(/st$/) I don't see why people insist on doing all the low level shit themselves, and then still complain about "scalability" and "fitness for programming on the enterprise level".