如何找到所有X个字符的单词?

时间:2019-03-26 11:21:22

标签: javascript

我正在尝试编写一个代码,以查找具有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++) {

但是之后我迷路了:(

在Google上,我只能找到与我相似的代码或输出一个字符数。

5 个答案:

答案 0 :(得分:1)

你去了

  • split:创建一个包含所有单词的数组
  • filter:仅获取带有4个字符的单词
  • join:创建一个字符串,其中所有元素都用空格分隔

    var el = string.split(' ').filter(x => x.length == 4).join(' ');

答案 1 :(得分:1)

string.split(' ').filter(x => x.length === 4).map(x => x)

这段代码应该给您预期的输出

答案 2 :(得分:1)

您可以将- echo "$ENVIRONMENT_VARIABLE_NAME" > /path/where/you/want/to/put/ca.crtsplit一起使用。

filter将创建一个由空格分隔的字符串数组。 split将仅返回filter为4个字符的字符串。最后,length将以空格分隔的字符串返回数组。

join

答案 3 :(得分:1)

如果我理解正确,那么有两个任务:
1.找到字符串中单词的最大字符数,然后
2.查找与此计数匹配的所有单词

const longestWords = str => {
    const words = str.split(/\s+/g);
    const maxCount = Math.max.apply( null, words.map( word => word.length ));
    return words.filter( word => word.length === maxCount );
};

https://jsfiddle.net/pkxwfmb2/

console.log( longestWords("aa this bb cc that abcd") );
// [ "this", "that", "abcd" ]
console.log( longestWords("aa this bb cc that abcdef") );
// [ "abcdef" ]
console.log( longestWords("a bb c dd e f gg") );
// [ "bb", "dd", "gg" ]

答案 4 :(得分:0)

尝试一下:

let string = 'aa this bb cc that abcd';
function longWord(str) {
    let words = str.split(' ');
    let output = [];

    for (let i = 0; i < words.length; i++) {
        if (words[i].length == 4)
            output.push(words[i]);
    }
    return output.join(',');
}
console.log(longWord(string));

您将获得预期的输出。