今天看到某团一个面试题
统计单词出现次数(key => value)
就唠唠 这种业务上的一点东西
设置了一个字符串来测试
- 原题
var str = 'adaddvadsfgtrsytreewythjnmnbv'
因为要用key value 键值对来表示 肯定第一想到的是 对象
上面其实很简单的 遍历每一项 1 或者 每一项 每一项的数量+1var str = 'adaddvadsfgtrsytreewythjnmnbv' var obj = {} for (var i= 0; i< str.length; i++) { obj[str[i]] = 1 || (obj[str[i]] + 1) } console.log(obj) //{a: 2, b: 2, c: 2}复制代码
- 扩展1
现在找下字符串中第一个重复的字符
var str = 'adaddvadsfgtrsytreewythjnmnbv'
var str = 'adaddvadsfgtrsytreewythjnmnbv'
var obj = {}
for (var i= 0; i< str.length; i++) {
obj[str[i]] = 1 || (obj[str[i]] + 1)
if(obj[str[i]] == 2) {
console.log(str[i]) //第一个重复的是a
break; //找到就退出
}
}
console.log(obj) //{a: 2, b: 2, c: 2}复制代码
- 扩展2
现在找下字符串中出现次数最多的字符
var str = 'adaddvadsfgtrsytreewythjnmnbv'
var str = 'adaddvadsfgtrsytreewythjnmnbv'
var obj = {}
for (var i= 0; i< str.length; i++) {
obj[str[i]] = 1 || (obj[str[i]] + 1)
}
console.log(obj) //{a: 2, b: 2, c: 2} 这里找到 所有
var temp_val = 1 //temp_val 标记一个初始数量
var temp_key = str[0] //temp_key 标记初始一个字符
for (var key in obj) {
if (obj[key] > temp) {
temp_key = key
temp_val = obj[key]
}
}
//这里 temp_key temp_val 显示了 那个字符 最多复制代码
基础还有很多 希望继续努力