给定一个混合类型数组,“getLongestWordOfMixedElements
”返回给定数组中最长的字符串。
注释:
- 如果数组为空,则应返回空字符串 (
""
)。 - 如果数组不包含字符串;它应该返回一个空字符串。
如何确定数组是否包含字符串,如以下代码所示:
function getLongestWordOfMixedElements(arr) {
if (arr.length === 0) return ""
var max = 0
for (var i = 0; i < arr.length; i++){
if(arr[i].length > max) max = arr[i]
}
return max
}
getLongestWordOfMixedElements([3, 'word', 5, 'up', 3, 1]);
最佳答案
您可以过滤数组中的字符串,然后使用减少操作来查找最长的字符串
function getLongestWordOfMixedElements(arr) {
return arr
.filter(item => typeof item === 'string')
.reduce((longest, str) => str.length > longest.length ? str : longest, '');
}
console.log(getLongestWordOfMixedElements([3, 'word', 5, 'up', 3, 1]));
请注意,如果任何单词长度相同,则返回数组中较早的单词。
<小时/>此外,您可以跳过过滤器并在reduce中进行类型检查...
return arr.reduce((longest, str) => {
return typeof str === 'string' && str.length > longest.length ?
str : longest;
}, '')
关于javascript - 判断数组中的某个元素是否为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275948/