该过滤器如何过滤空白?

问题描述 投票:0回答:1
// The global variable
var globalTitle = "Winter    Is     Coming";

// Only change code below this line
function urlSlug(title) {
  return title
  .split(" ")
    .filter(x => x)
  .join("-")
  .toLowerCase();
}
// Only change code above this line

console.log(urlSlug(globalTitle))

// Result: winter-is-coming

我的疑问是关于此行:。filter(x => x),如何过滤数组中的空白?

arrays join filter split whitespace
1个回答
0
投票
您正在分割一个空格,这将导致数组如下所示:

[ 'Winter', '', '', '', 'Is', '', '', '', '', 'Coming' ]

然后将所有数组项传递到过滤器,过滤器将尝试将值转换为布尔值。将空白转换为布尔值将返回false。

使用filter将保留元素,如果它返回true,那么您将得到以下结果:

[ 'Winter', 'Is', 'Coming' ]

完成此操作的另一种方法是使用.filter(Boolean)
© www.soinside.com 2019 - 2024. All rights reserved.