美文网首页
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