# 数组中的最长单词
# 难度:简单
# 描述:
给一个数组,找出其中所有最长的单词。
# 样例:
[
"dog",
"google",
"facebook",
"internationalization",
"blabla"
]
1
2
3
4
5
6
7
2
3
4
5
6
7
最长的单词集合为 ["internationalization"]
[
"like",
"love",
"hate",
"yes"
]
1
2
3
4
5
6
2
3
4
5
6
最长的单词集合为 ["like", "love", "hate"]
# 思路分析:
主要要注意一下第二个栗子中描述的情况,建议保存当前字符最大的长度,然后及时更新。
# 代码模板:
const Solution = (arr) => {
}
1
2
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
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