JavaScript中split()和join()方法的使用

来源:互联网 发布:签章软件下载 编辑:程序博客网 时间:2024/06/07 14:43

按照惯例,每天一道算法题。今天遇到的是这样:

使用给定的参数对句子执行一次查找和替换,然后返回新句子。

第一个参数是将要对其执行查找和替换的句子。

第二个参数是将被替换掉的单词(替换前的单词)。

第三个参数用于替换第二个参数(替换后的单词)。

注意:替换时保持原单词的大小写。例如,如果你想用单词 "dog" 替换单词 "Book" ,你应该替换成 "Dog".

不得不说的一点是,玩JavaScript的算法题,你不会str.split()和arr.join()方法,那几乎是没法玩的。虽然在实际生产中这些原生方法不见得有太大用途。

1. split()

先来看看W3C上的文档介绍:

定义和用法

split() 方法用于把一个字符串分割成字符串数组。

语法

stringObject.split(separator,howmany)
参数描述separator必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。howmany可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
然而,这并不是重点,重点是:
注释:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

没错,结合基本用法和特殊用法,我们就可以使用:
str.split(" ")——把一个句子或段落按空格分割成一个个单词的数组,再依靠
str.split("")——把每个单词分割成一个个字母。


2. join()

国际惯例看文档:

定义和用法

join() 方法用于把数组中的所有元素放入一个字符串。

元素是通过指定的分隔符进行分隔的。

语法

arrayObject.join(separator)
参数描述separator可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

返回值

返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。


好了,这你就知道了,当你用arr.join("")时,就可以将数组恢复成字符串形式。

也就是说:
split()与join()方法是完全相反的,借由两个方法可以实现字符串和数组之间的自由操作。


那道题也可以迎刃而解,lets do it!
function myReplace(str, before, after) {  str = str.split(" ");  var bef = before.split("");  var aft = after.split("");  if (bef[0].match(/[A-Z]/)!==null){                   aft[0] = aft[0].toUpperCase();      after = aft.join("");                   }  for(var i = 0; i<str.length; i++){    if(str[i] === before){      str[i] = after;    }  }  str = str.join(" ");  return str;}myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");



原创粉丝点击