Array.prototype.join()

join() 方法通过连接数组(或类似数组的对象)中的所有元素来创建并返回一个新字符串,用逗号或指定的分隔符字符串分隔。 如果数组只有一项,则该项将在不使用分隔符的情况下返回。


使用 join 方法将数组组合成字符串

join 方法用来把数组中的所有元素放入一个字符串。 并通过指定的分隔符参数进行分隔。

1
2
3

const arr = ["Hello", "World"];
const str = arr.join(" "); // Hello World

在函数 sentensify 内用 join 方法(及其他方法)用字符串 str 中的单词造句,这个函数应返回一个字符串。
该函数应返回一个数组。 举个例子,I-like-Star-Wars 会被转换成 I like Star Wars。 请勿使用 replace 方法。

1
2
3
4
5
6
7
8

function sentensify(str) {

  return str.split(/\W/).join(" ");

}

sentensify("May-the-force-be-with-you"); // May the force be with you

应用函数式编程将字符串转换为URL片段

许多内容管理站点(CMS)为了让添加书签更简单,会将帖子的标题添加到 URL 上。

举个例子,如果你写了一篇标题为 Stop Using Reduce 的帖子,URL很可能会包含标题字符串的某种形式 (如:…/stop-using-reduce)。

  • 输入包含空格和标题大小写单词的字符串

  • 输出字符串,单词之间的空格用连字符 (-) 替换

  • 输出应该是小写字母

  • 输出不应有任何空格

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22

let globalTitle = "Winter Is Coming";

// function urlSlug(title) {
//   return title
//     .toLowerCase()
//     .trim()
//     .split(/\s+/)
//     .join("-");
// }

// 或者

function urlSlug(title) {
  return title
    .split(" ")
    .filter(substr => substr !== "")
    .join("-")
    .toLowerCase();
}

urlSlug(globalTitle); // winter-is-coming