- 此题的解决思路大致是,我们需要的结果是类似 key: value形式的键值对,例如——出现最多的字符:出现的次数,所以可以利用到我们之前学习的对象解决这个问题。
- 依据上诉,可以声明一个对象,随后遍历所要查询的字符串,将每个字符推入到对象中,而对象属性的追加方式除了前文阐述的内容,还可以以 对象名【‘属性名'】的形式读取该对象中某个属性的属性值。
- 判断该对象中是否有该字符,也就是该属性,如果有就把他的出现次数 +1,若没有则说明此字符是第一次出现在该对象中,则赋值为1即可
- 最后再次遍历对象,取出出现次数最多的属性名以及属性值即可
- // 实现一个函数,输入某个字符串,输出其中出现最多的字符和个数
-
- //定义一个变量 str 接收用户输入字符串
- var str = window.prompt('请输入一个字符串');
-
- // 声明一个名为 count 的函数
- function count(str1) {
- // 声明一个空对象
- var other = {};
- // 遍历用户输入的字符串
- for (var i = 0; i < str1.length; i++) {
- // 获取每一个字符
- var char = str1.charAt(i);
- if (other[char]) {
- other[char]++;
- } else {
- other[char] = 1;
- }
- }
- // 定义变量表示出现最多的字符出现的次数
- var maxCount = 0;
- // 定义一个空字符串,用来表示出现最多次数的字符
- var ch = '';
- // 遍历对象
- for (var k in other) {
- if (other[k] > maxCount) {
- maxCount = other[k];
- ch = k;
- }
- }
- console.log('出现最多的字符是' + ch + '\n' + '出现的次数' + maxCount);
- return result;
-
- }
-
- // 调用函数 count
- count(str);
-
-
回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串。
方法一:通过翻转后的字符串与初始的字符串进行对比
- // 方法一:
- // 定义一个变量接收用户输入字符串
- var str = window.prompt('请输入一个字符串:');
- // 定义一个空的字符串
- var other = '';
- // 判断是否是回文字符串
- for (var i = str.length; i >= 0; i--) {
- other += str.substr(i, 1);
- }
- if (str === other) {
- console.log('是回文字符串!');
- } else {
- console.log('不是回文字符串!');
- }
- console.log(other);
方法二:利用字符串与数组的相关api 解决问题
- // 定义变量接收用户输入的数据
- var str = window.prompt('请输入任意一个字符串:');
- // 定义名为 changeStr 的函数
- function changeStr(str){
- var result = str.split('').reverse().join('');
- // true 则为回文数, false 则不是
- return str === result;
- }
- // 调用函数 changeStr
- console.log(changeStr(str));
可定义一个空字符串,利用indexOf判断该字符串中是否含有被遍历的字符串中的每一个字符
-
- // 去除用户输入字符串中的重复字符
-
- // 定义一个变量接收用户输入的字符串
- var str = window.prompt('请任意输入一个字符串:');
- // 声明一个 norepeatstr 的函数
- function norepeatstr(str) {
- // 声明一个空字符串
- var other = '';
- // 遍历字符串
- for (var i = 0; i < str.length; i++) {
- if (other.indexOf(str[i]) == -1) {
- other += str[i];
- }
- }
- return other;
- }
-
- // 调用函数 norepeatstr
- console.log(norepeatstr(str));
-
首先也是要遍历字符串,然后通过方法判断该字符串遍历到的每一个字符是否为数字即可
方法一:
通过判断该字符的字符编码,我们知道字符串中的每一个字符在ASCII码集中都有对应的码值,例如数字 0-9 所对应的码值就是 48-57,可根据这个条件判断该字符是否为数字
- // 定义变量接收用户输入字符串
- var str = window.prompt('请输入一个字符串:');
- var other = '';
- // 声明名为 delnumber 的函数
- function delnumber(str1) {
- for (var i = 0; i < str1.length; i++) {
- // 获取每一个字符的 ASCII码值
- var a = str1.charCodeAt(i);
- // 判断该字符是否是数字
- if (!(a > 48 && a < 57)) {
- other += str1[i];
- }
- }
- return other;
- }
方法二:通过正则表达式判断
在正则表达式中 /[0-9]/g / /是正则表达式的格式,【0-9】表示的是数字 0-9, g表示的全局匹配,也就是说在整个字符串中进行查找
- // 声明一个变量接收用户输入字符串
- var str = window.prompt('请任意输入一串字符:');
-
- // 声明一个名为 delNumber 的函数
- function delNumber(str) {
- // 遍历字符串
- for (var i = 0; i < str.length; i++) {
- // 通过正则表达式判断,若该字符不是数字,则用空格替换。
- var result = str.replace(/[0-9]/g, '');
- }
- return result;
- }
方法三:通过isNaN函数进行判断该字符是否为数字。
- // 声明一个变量接收用户输入数据
- var str = window.prompt('请任意输入一个字符串:');
-
- // 声明一个名为 delNumber 的函数
- function delNumber(str){
- var other ='';
- // 遍历字符串
- for(var i=0;i
length;i++){ - if(isNaN(str[i])){
- other +=str[i];
- }
- }
- return other;
- }
-
- //调用函数 delNumber
- console.log(delNumber(str));
以上就是今日所要分享的内容,最后依旧诚挚祝福屏幕前的你健康幸福、平安喜乐。拜~