<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
//有一個字符串?dāng)?shù)組,找出出現(xiàn)次數(shù)最多的字符及對應(yīng)的次數(shù)
let str = ['a', 'b', 'a', 's', 'f', 'g', 'g', 'g', 'h', 'j', 'j', 'k', 'k', 'g', 'f', 'd', 'd', 's', 's', 's', 's', 's', '3', '4', '4', '4', '3', '4', '3'];
/*思路:
利用對象兩個特點
屬性可以動態(tài)添加=
屬性與屬性值之間是一個鍵值對的關(guān)系
1.聲明一個空對象拳魁,遍歷字符串
2.將字符串的字符作為對象的屬性蜈块,出現(xiàn)的次數(shù)作為對象的屬性值
*/
let objc = {}; //創(chuàng)建對象
for (let i = 0; i < str.length; i++) {
let s = str[i];
//先判斷對象是否有該屬性
if (objc[s] == undefined) {//使用字符串語法對對象取值袖瞻,如果取出來是undefined辙诞,表示對象沒有這個屬性
//既然沒有表示這個字符是第一次出現(xiàn)褪子,那么就將這個字符作為對象的屬性量淌,屬性的值為1 (第一次出現(xiàn))
objc[s] = 1;//動態(tài)賦值
} else {//如果對象有這個屬性,則讓這個屬性的值自身+1 (每出現(xiàn)一次就加1)
objc[s]++;
}
}
console.log(objc);//遍歷這個對象嫌褪,就知道哪個字符出現(xiàn)的最多了
</script>
</body>
</html>
因為objc.a == objc['a']
代碼27行objc[s]
產(chǎn)生的效果是在對象objc
中添加屬性呀枢,屬性值則為出現(xiàn)的次數(shù)。
如:
objc = {
3: 3,
4: 4,
a: 2,
b: 1,
d: 2,
f: 2,
g: 4,
h: 1,
j: 2,
k: 2,
s: 6
}