The many ways to select the n-th character from a string.

Christian Heilmann - Jun 2 '23 - - Dev Community

A question I came across the other day during a JavaScript application test was this:

How would you select the n-th character from the word "Example"?

The fun thing here is that there are lots of different ways to do that. The one I always forget about is that you can access the index of a string directly. This works in JavaScript and PHP!

'example'.substr(1,1) // (from, how many characters)
'example'.substring(1,2) // (from, to)
'example'.at(1)
'example'.split('')[1] // split turns it into an array
[... 'example'][1] // convert to array via spread
'example'[1] // 🤯 
Enter fullscreen mode Exit fullscreen mode

Now, when checking that a string is a certain length, you normally use the length property, but you could also simply check if the index exists, to make it shorter.

let str = 'example';
let amount = 4;
if (str.length > amount) {
    console.log('string is long enough');
}
if (str[amount]) {
    console.log('string is long enough');
}
Enter fullscreen mode Exit fullscreen mode

The question is if this performs better or not. Also, the length bit might make it more readable.

Other problems are that zero-indexing can be confusing (hence the amount+1) and that when you use the index you don't get a boolean returned but instead the character or undefined. So if you wanted to write this as a function you need to write something akin to:

const isXlong = (str, y) => str[y + 1] ? true : false;
Enter fullscreen mode Exit fullscreen mode

Which makes it less readable again.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Terabox Video Player