计算字符串中的单词数
How to count the words in a String in JavaScript
要计算字符串中的单词:
- 使用该
String.split()
方法将字符串拆分为单词数组。 - 访问
length
数组上的属性。 - 该
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