javascript - 如何返回数组中最长的字符串 - 即使数组包含不是字符串的项目?

标签 javascript arrays string sorting

假设我正在编写一个像这样的函数:

function longestString (someArray) {
    // code
}

如果someArray = ['word','longerphrase',['a','b','c'],1234567891011121314151617],我希望函数只返回最长的数组中的字符串,并忽略其中可能存在的整数和其他数组。我试过这个:

function longestString (someArray) {
    return someArray.sort(function (a, b) { return b.length - a.length; })[0];
}

它不起作用,我现在陷入困境。 :/

最佳答案

仅过滤字符串元素并执行

function longestString (someArray) {
    return someArray
        .filter(function(a){ return typeof(a)=='string' })
        .sort(function (a, b) { return b.length - a.length; })[0];
}

关于javascript - 如何返回数组中最长的字符串 - 即使数组包含不是字符串的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31130182/

相关文章:

c++ - C++ 如何使用 == 比较两个字符串?

javascript - PouchDB/CouchDB 复制失败,方法不允许

javascript - ExtJs 表格布局边框缺失和单元格颜色

javascript - 云函数: Checking if email exists in users document in Firestore not working

javascript - 如何检测语言 iPhone 网络应用程序?

php - 从 MySQL 表构建 PHP 数组

javascript - 如何将 jQuery UI 可排序元素与数组链接?

arrays - 如何复制字节数组

python - 生成不在字符串列表中的子字符串列表

python - 从列表中的字符串中删除\xa0