【发布时间】:2015-12-07 05:53:51
【问题描述】:
我是 Javascript 的初学者。在过去的几个小时里,我一直在为这个问题感到困惑,所以我希望有人可以帮助我解决我正在尝试编写的代码中的逻辑。
我目前正在尝试编写一个函数,该函数将获取数组中最长的字符串并将其传递回控制台。如果出现平局,控制台应返回字母最多的第一个单词。
我找到了一段很好的代码可以做到这一点,但我找不到将它变成函数的方法。
arr. sort(function (a, b) { return b.length - a.length })[0];
我试过了
var longestWord = function(arr) {
sort(function (a, b) { return b.length - a.length })[0];
}
这不起作用。我知道我做错了什么,但我不确定它是什么。另外,我无法完全理解为什么会出现这个词。我可以理解函数比较两个变量的长度,但是为什么0索引必须在末尾?
非常感谢任何帮助!
【问题讨论】:
-
附注:排序是一种昂贵的方法,因为即使是最好的情况也是 O(nlog n)。最好使用 for 循环遍历数组,并将每个单词与
longestWordFound变量进行比较,该变量为 O(1)。
标签: javascript arrays function sorting compare