今天主要介绍字符串的split()方法,看到这里,你肯定心里在想题主傻逼,这么简单的方法还需要记录再博客里?
没错,题主确实是特别傻逼,总是容易把简单的问题想复杂
不逼逼了,首先介绍一下split()方法吧:
这个方法可以基于指定的分隔符将一个字符串分割成多个子字符串,并将结果放在一个数组里,分隔符可以是字符串,也可以是RegExp对象;
split()方法可以接受可选的第二个参数,用于指定数组的大小,以便确保返回的数组不会超过既定大小。
用到这个方法主要是由于下面的题目:
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
根据题目,首先想到的是将长字符串分割成子字符串后,在将子字符串进行倒序输出,代码如下:
var reverseWords = function(s) {
for(var i = 0; i < s.length; i++){
if(s[i] === ' '){
s = s.replace(' ', '/');
}
}
var arr = s.split("/");
var str = '';
for(var j = 0; j < arr.length; j++){
str += ' ';
for(var k = arr[j].length - 1; k >= 0; k--){
str += arr[j][k];
}
}
return str.substr(1, str.length-1);
};
所以说题主傻逼呢,为什么这里分割字符串非得用到'/',空格不是一样可以分割吗?
所以简化代码:
var reverseWords = function(s) {
var arr = s.split(' ');
var str = '';
for(var j = 0; j < arr.length; j++){
str += ' ';
for(var k = arr[j].length - 1; k >= 0; k--){
str += arr[j][k];
}
}
return str.substr(1, str.length-1);
};
但是,将字符串进行倒序除了上面一种方法,还可以将子字符串再次分割为数组后,调用数组的reverse()方法,代码如下:
var reverseWords = function(s) {
var str = s.split(" ");
for(let i = 0;i < str.length;i++){
str[i] = str[i].split("").reverse().join("");
}
return str.join(" ");
};
写这篇文章主要是为了吐槽我的木头脑袋了,就酱~