我正在尝试编写一个代码,以查找具有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上,我只能找到与我相似的代码或输出一个字符数。
答案 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.crt
与split
一起使用。
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));
您将获得预期的输出。