题目要求需要忽略空格,所以需要将获取到的字符串进行预处理,使用trim()方法去掉字符串两端的空格,再使用split()方法将字符串以空格分割为若干字符串,再将分割后的字符串数组拼成一个完整的无空格的字符串,然后使用charAt()遍历字符串中的每一个字符,保存到一个对象中,如果某字符未出现则将其保存到obj对象中,且对应的值为1;如果已出现则对应值+1。
function count(str) { str = str.trim().split(' '); let tempA = ''; for (let k in str) { tempA = tempA.concat(str[k]) } let obj = {}; for (let i = 0; i < tempA.length; i++) { let chars = tempA.charAt(i);//chars 是 字符串的每一个字符 if (obj[chars]) {//o[chars]得到的是属性值 //补全代码 obj[chars] += 1; } else { //补全代码 obj[chars] = 1; } } return obj; }