Hi Can anyone please explain what it means if you have join(‘|’) or split(‘|’) if you are trying to split or join a string? Thank you
please see below context:
sorted=words.join(‘|’).toLowerCase().split(‘|’)
Hi Can anyone please explain what it means if you have join(‘|’) or split(‘|’) if you are trying to split or join a string? Thank you
please see below context:
sorted=words.join(‘|’).toLowerCase().split(‘|’)
.join
combines the contents of an array into a string, separated by the value you passed it:
['this', 'is', 'some', 'text'].join('|');
// 'this|is|some|text'
.split
is essentially the inverse of .join
.
'this|is|some|text'.split('|');
// [ 'this', 'is', 'some', 'text' ]
Hi, this is actually related to this code here, where a string is split by multiple delimiters, sorry I should’ve made it more clear.
I just don’t know why they inserted ‘|’ into the join() function. Thank you
var separators = [' ', '\\\+', '-', '\\\(', '\\\)', '\\*', '/', ':', '\\\?'];
var tokens = x.split(new RegExp(separators.join('|'), 'g'));
console.log(tokens);
This creates this equivalent regexp:
/ |\+|-|\(|\)|\*|\/|:|\?/g
In the context of regular expressions, a |
character means you want to match either thing on both sides. Say you have this regexp:
/dog|cat/
It will match the "dog"
in "crazy dog"
or the "cat"
in "crazy cat"
.
In the regexp that’s constructed in your code, it matches a space, a plus sign, a minus sign, etc. (globally, because of the g
flag).
Now you feed this crazy regexp to the .split
function, which tells it to split the x
string whenever it matches these stuff.