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