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] // 🤯
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');
}
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;
Which makes it less readable again.