数组中的最长单词

难度:简单

描述:

给一个数组,找出其中所有最长的单词。

样例:

[
  "dog",
  "google",
  "facebook",
  "internationalization",
  "blabla"
]
1
2
3
4
5
6
7

最长的单词集合为 ["internationalization"]

[
  "like",
  "love",
  "hate",
  "yes"
]
1
2
3
4
5
6

最长的单词集合为 ["like", "love", "hate"]

思路分析:

主要要注意一下第二个栗子中描述的情况,建议保存当前字符最大的长度,然后及时更新。

代码模板:

const Solution = (arr) => {
}
1
2

想一想再看答案

想一想再看答案

想一想再看答案

代码:

const Solution = (arr) => {
    let store = {
        arr: [], // 保存最长单词的数组
        max: 1 // 字符串最大长度
    }
    arr.forEach(val => {
        // 当前值的长度 超过或等于 最大字符串长度
        if (val.length >= store.max) {
            if (val.length === store.max) {
                // 长度一样 将值添加进去
                return store.arr.push(val); // 退出循环
            }
            store.arr = []; // 最大值比之前的大,清空原数组
            store.arr.push(val); // 添加到数组
            store.max = val.length; // 更新最大值
        }
    });
    return store.arr; // 返回数组
}
let data1 = [
    "like",
    "love",
    "yes",
    "hate"
]
let data2 = [
    "dog",
    "google",
    "facebook",
    "internationalization",
    "blabla"
]
console.log(Solution(data1), Solution(data2))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

鼓励我一下:

觉得还不错的话,给我的项目点个star

Last Updated: 10/24/2018, 8:07:31 PM