数组例题整理

这篇博客探讨了JavaScript中数组的常见操作,包括如何合并两个数组并去除重复元素,找出数组内部的缺失值,以及如何将一个多维数组拆分为一维数组。此外,还介绍了如何统计字符串中最常出现的字符及其数量。这些算法对于日常编程和数据处理非常实用。
摘要由CSDN通过智能技术生成

1.数组去重
将两数组合并,去掉重复元素
var arr1 = [1, 2, 3, 4];
var arr2 = [1, 3, 5, 6];

	方法一
	
     for(var index in arr1){
         var common=arr2.indexOf(arr1[index]);
         if(common!=-1){
             arr2.splice(common,1);
          }
     }
     console.log(arr1.concat(arr2));       //[1,2,3,4,5,6]
	方法二
	
      var list=arr1.concat(arr2);
      console.log(list);
      for(var i=0;i<list.length;i++)
      {
          //默认拿一个   和后边每位进行对比   相同删除
          var nowDate=list[i];
          for(var j=i+1;j<list.length;j++)
          {
              if(nowDate==list[j]){
                  list.splice(j,1);
                  j--;
              }
          }
      }
      console.log(list);
	方法三
	
      var list=arr1.concat(arr2);
        console.log(list);
        for(var i=0;i<list.length;i++)
        {
            var now=list[i];
            var findindex=list.slice(i+1,list.length).indexOf(now);
            if(findindex!=-1){
                list.splice(i,1);
                i--;
            }
        }
        console.log(list);

2.找缺失值
找数组内部缺失值 数组值是连续的

		var arr=[1,4,7,2,6,9,5,0];
        //数学对象方法  min  max
        //call:传递的参数是序列型  apply:传递的参数是集合型 
        //修改方法内部对象指针 传递参数
        var min=Math.min.apply(null,arr);
        var max=Math.max.apply(null,arr);
        for(var i=min;i<max;i++){
            if(arr.indexOf(i)==-1){
                console.log(i);       // 3  8
            } 
        }

3.数组拆分
把多为数组 拆为一维数组

	var arr=[1,[2,3],[[4,5,6],[7,8,9]],[[[10,11]],[[12,13]]]];
    var list=[];
    function NewArray(array){
	    for(var i=0;i<array.length;i++)
	    {
		    //检测是不是数组
		    if(Array.isArray(array[i]))
		    {
		    NewArray(array[i]);
		    }
		    else{
		    //添加当前不是数组的值;
		    list.push(array[i]);
		     }
	     }
     }
     NewArray(arr);
     console.log(list);    // 1,2,3,4,5,6,7,8,9,10,11,12,13

4.统计最多字符
统计字符串里面那个字符最多,有几个

	var str = 'abcdacbdsabsadbsadbasbdnmsanbkkkkkkkk';
    var save = [];
    for (var k = 0; k < str.length; k++) {
    	var char = str.charAt(k);
        var count = 1;
        //找当前的 在字符串内部相同的个数
        for (var i = k + 1; i < str.length; i++) {
            if (char == str[i]) {
                count++;
                var arr = str.split("");
                arr.splice(i, 1);
                str = arr.join("");
                i--;
            }
         }
         if (count > save[1]) {
           	 save = [];
             save[0] = char;
             save[1] = count;
         }
         else if (count == save[1]) {
             save.push(char);
             save.push(count);
         }
         if (k == 0) {
         save.push(char);
         save.push(count);
         }
    }
    console.log(save);           // "k" 8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

致可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值