js多维数组变一位数组

(1) 将多维数组转化成一个一位数组,例如[1,[2,3],[4,5,[6,7]]]转化成[1,2,3,4,5,6,7],答案在下面,主要就是利用递归

复制代码
function test(array){
    var newArray = [];
    for (var i=0,length = array.length - 1; i <= length; i++) {
        if(array[i] instanceof Array){//判断是不是数组
            newArray = newArray.concat(test(array[i]));//递归调用
        }else{
            newArray.push(array[i]);
        }
    }; 
    return newArray;
}
复制代码

(2) 求数组的最大维数,即一共嵌套了多少层,例如[1,2,[3,[4,5,[6]],[7,[8]]]] 一共嵌套了4层,还是利用递归,主要代码在下面

复制代码
function getDim(array){
    var dim = [];
    for (var i =0,length = array.length - 1; i <= length; i++) {
        if(array[i] instanceof Array){
            dim[i] = getDim(array[i]) + 1;//是数组就加1
        }else{
            dim[i] = 1;
        }
    };
    return (dim.sort(function(a,b){return a-b})).pop();//返回最大的维数
    //或者这样
    //return Math.max.apply(null,dim);
}
复制代码

(3)查找字符串中出现最多的字符和个数?   例如:sdjksfssscfssdd  -> 字符最多的是s,出现了7次,这个主要就是利用replace函数来实现的,还可以用普通的方式

复制代码
var str = "sdjksfssscfssdd";
str = str.split("").sort().join("");
var count = 0;
var val;
str.replace(/(\w)\1*/g,function(arg0,arg1){
    if(arg0.length > count){
      count = arg0.length;
      val = arg1;
    }
});    
console.log(val+" 出现了"+count+" 次");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值