如何在 JavaScript 中计算字符串中的单词数

计算字符串中的单词数

How to count the words in a String in JavaScript

要计算字符串中的单词:

  1. 使用该String.split()方法将字符串拆分为单词数组。
  2. 访问length数组上的属性。
  3. length属性将返回字符串中的单词数。
索引.js
function countWords(str) { const arr = str.split(' '); return arr.filter(word => word !== '').length; } console.log(countWords('One two three')); // 👉️ 3 console.log(countWords('This is a long string')); // 👉️ 5

我们创建了一个可重用的函数,它将字符串作为参数并返回字符串中的单词数。

我们使用
String.split
方法在每个空格上拆分字符串。

这将返回一个包含字符串中单词的数组。

索引.js
// 👇️ ['hello', 'world'] console.log('hello world'.split(' ')); // 👇️ ['one', 'two', 'three'] console.log('one two three'.split(' '));
但是,如果字符串包含多个彼此相邻的空格,则此方法将在第一个空格处拆分,然后将空字符串添加到数组中。
索引.js
// 👇️ ['hello', '', 'world'] console.log('hello world'.split(' ')); // 👇️ ['one', '', 'two', '', 'three'] console.log('one two three'.split(' '));

我们可以使用
Array.filter
方法来确保我们不会将空字符串计为单词。

该方法使我们能够在访问数组filter的属性之前过滤掉空字符串。length

我们传递给filter方法的函数被数组中的每个元素调用。

索引.js
function countWords(str) { const arr = str.split(' '); return arr.filter(word => word !== '').length; } console.log(countWords('One two three')); // 👉️ 3 console.log(countWords('This is a long string')); // 👉️ 5
如果该函数返回一个真值,该元素将被添加到该filter方法返回的新数组中。

我们检查每个元素是否不等于空字符串并返回结果。

索引.js
const arr = ['one', '', 'two', '']; const filtered = arr.filter(element => element !== ''); // 👇️ ['one', 'two'] console.log(filtered);

最后一步是访问length数组上的属性以获取字数。

这是完整的代码片段。

索引.js
function countWords(str) { const arr = str.split(' '); return arr.filter(word => word !== '').length; } console.log(countWords('Walk the dog')); // 👉️ 3 console.log(countWords('Buy groceries')); // 👉️ 2