您好我试图在相同的功能中返回最长的单词和他的长度,但到目前为止,我曾经尝试过没有成功,我能够以不同的功能返回世界和长度,但我想要的是返回两者都在同一个函数中
function longestWord(string) {
var str = string.split(" ");
var longest = 0;
var word = null;
for (var i = 0; i < str.length 1; i++) {
if (longest < str[i].length) {
longest = str[i].length;
word = str[i];
}
}
return word;
}
答案 0 :(得分:2)
您可以使用Array.map
将字符串转换为对象数组。每个对象都有单词及其长度。然后使用Array.reduce
获取最长的对象。
const data = 'Some random data';
const result = data
.split(' ')
.map(word => ({ word, len: word.length }))
.reduce((carry, el) => carry.len > el.len ? carry : el);
console.log(result)
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:1)
除非你做一些特别奇怪的事情,否则你不需要发送单词及其长度。由于这个单词是一个字符串,你可以稍后得到它的长度
word.length
答案 2 :(得分:1)
可能是最简单,最短的方式。使用reduce
,length
和match
:
function longestWordOf(str) {
return str.match(/\w+/g).reduce((p, c) => p.length > c.length ? p : c);
}
var str = 'Hello stackOverlfow users, how are you all doing?';
var longestString = longestWordOf(str);
console.log('Longest word is \'' + longestString + '\' with length ' + longestString.length);
&#13;