美文网首页
2019-05-08溢出省略、

2019-05-08溢出省略、

作者: caf46d992d3c | 来源:发表于2019-05-08 16:46 被阅读0次

    算法4:截断字符串:字符串指定长度溢出替换为省略号

    function s(w,len){
        if(w.length<=len){
            return w
        }else{
            return w.slice(0,len)+"…"
        }
    }
    s("You对方是否",6)    //"You对方是…"
    

    算法5:指定长度分割字符串:

    以下涉及的方法:

    slice(start处,end处)字符串
    splice() 方法向数组中添加/删除项目,然后返回被删除的项目。splice(index,howmany,item1,.....,itemX)

    方法1:slice

    function str(w,len){
        w=w.toString();
        var arr=[];
        if(len<1||w.length==len){
            return "指定分割长度无意义"
        }else{
            for (var i=0; i<w.length; i+=len) {
                arr.push(w.slice(i,i+len))
            }
        }
        return arr
    }
     str("123",2)//Array [ "12", "3" ]
    
    str(["a", "b", "c", "d","e"], 2);//这种方式输入的需注释掉 w=w.toString();
    

    方法2:splice

    function str(w,len){
        w=w.toString();
        var arr=[];
        if(len<1||w.length==len){
            return "指定分割长度无意义"
        }else{
            for (var i=0; i<w.length; i+=len) {
                arr.push(w.split("").splice(i,len))
            }
        }
        return arr
    }
    str("123",2)
    
    // 0: Array [ "1", "2" ]
    // 1: Array [ "3" ]
    // length: 2
    

    错误记录:分割长度如输入为数组则会出错
    因为当第3次执行时w.length=1>i for循环已结束,解决方法:需要将数组先转为字符串

    function str(w,len){
            w=w.join("")
        var arr=[];
        if(len<1||w.length==len){
            return "指定分割长度无意义"
        }else{
            for (var i=0; i<w.length; i+=len) {               
                arr.push(w.split("").splice(i,len)) 
            }
        }
        return arr
    }
     str(["a", "b", "c", "d","e"], 2);
    
    

    此处只是单独尝试这两种方法坐对比,也可以处理下做成通用的,比如
    if(type(w)!==arr)
    w=w.toString();

    相关文章

      网友评论

          本文标题:2019-05-08溢出省略、

          本文链接:https://www.haomeiwen.com/subject/lmomoqtx.html