我正在尝试编写代码,以查找具有4个(在这种情况下)字符的所有单词。所以我的预期输出是this that abcd
我当前的代码看起来像这样,它的问题在于,它仅找到第一个单词this
,并且不再寻找进一步的that abcd
。
let string = 'aa this bb cc that abcd';
function longWord(str) {
let words = str.split(' ');
let longWord = '';
for (let word of words) {
if (word.length > longWord.length) longWord = word;
}
return longWord;
}
console.log(longWord(string));
据我了解,我需要包括一个循环。
从
for (let word of words) {
更改对此
for (var i = 1; i < words.length; i++) {
但是之后我迷路了:(
看谷歌,我只能找到与我相似的代码或输出一个字符数。
最佳答案
您可以将split
与filter
一起使用。split
将创建由空格分隔的字符串数组。 filter
仅返回length
为4个字符的字符串。最后,join
将以空格分隔的字符串返回数组。
let string = 'aa this bb cc that abcd';
function longWord(str) {
return str.split(' ').filter(x => x.length === 4).join(' ');
}
console.log(longWord(string));