字符串与数组的异同点

字符串与数组异同点

共同点

  • 都可以遍历
  • 都有length
  • 都可以通过索引取值 str[索引] arr[索引]
    注意:数组没有length()这个方法,有length的属性, String有length()这个方法

不同点

  • 遍历方式不同:数组:for、for in、forEach 字符串:for
  • 字符串不能修改,数组可以修改
  • 类型不同:数组:赋值的是地址
    字符串: 赋值的是值

例题

  1. 返回一个只包含数字类型的数组(nsjgds312jiehks645jdesgv978)
<script type="text/javascript">
var str='6n2s28jgds312ji1eh79ks645jde43sgv978';
		function getArr(str){
             var s='';   //保存数字型字符串
             var srro=[];
			//遍历字符串
			for(var i=0;i<str.length;i++){
                if(str[i]>='0'&&str[i]<='9'){  //挑选字符串中的数字
                	//console.log(str[i]);
                	s+=str[i];  //将数字型字符存入s中;
                }else{
                	if(s!=''){
                    srro.push(s);  //将拼接好的数字存入数组
                }
                    s='';  //清空字符串
                }
            }
            //将末尾数字添加到数组中
            if(s!=''){
            	srro.push(s);
            }
            console.log(srro);
        }
        getArr(str);
        </script>
  1. 查找字符串出现最多的字符和个数
       <script type="text/javascript">
        var m='hasvbbavdbhaahvagbey';//aaaaabbbbhhh
        function dem(m){
            //1、将字符串转换为数组
            var ar1=m.split('');
            //2、排序
            ar1.sort(); //相同的在一起了
            //3、转为字符串
           m=ar1.join('');
            //console.log(m);
            //4、遍历字符串
            var temp=m[0]; //
            var count=1;   //计数器
            var arr0=[];
            for(var j=1;j<m.length;j++){
                if(temp==m[j]){   //重复字符
                    count++;
                }else{       //不重复字符,该字符统计结束
                    var arrs=[];
                    arrs.push(temp); //字符
                    arrs.push(count); //个数
                    arr0.push(arrs); //将字符和重复次数(数组)保存起来
                    temp=m[j];//修改中间变量
                    count=1; //修改计数器
                }
            }
            //将最后一个元素存入
            arrs=[];
            arr0.push(arrs);
            //console.log(arr0);
            return arr0;
        }
        var ar=demo1(m);
        var max=ar[0][1];//假设第一个字符的个数最多
        var t=ar[0][0];  //个数最多的字符
        ar.forEach(function(item){
            console.log(item);
            if(max<item[1]){
                max=item[1];
                t=item[0];
            }
        });
        console.log(t,max);
    </script>
发布了52 篇原创文章 · 获赞 39 · 访问量 5539

猜你喜欢

转载自blog.csdn.net/cedricdx/article/details/89419476