JavaScript splice()方法的问题

时间:2013-04-12 14:19:37

标签: javascript splice

我使用JS中的splice方法获得了混合结果,并带有以下示例:

var test = function(x){  
    var f = x.toString().length;
    var bb = [];
    for (i=0;i<f;i++){bb.push('a');}
    console.log(bb);
    for (i=bb.length; i>-1; i=i-3){bb.splice(Number((i-2)),1,'b');}
    console.log(bb);    
};              
test (412289847863);

当输入数字的长度为4,7,10,13等时,'bb'的最后一个元素变为'b',我看不清楚原因。在我看来,它应该永远是'a'。为什么不呢?

1 个答案:

答案 0 :(得分:0)

根据您的评论,您可以尝试使用此代码。您只需要一个循环并且应该避免拼接,因为它非常昂贵,如果您想一次只替换一个元素,则不需要。

function test(a){
    var l = a.toString().length;
    var bb = [];
    for (var i = l;i>0;i-=1){
        bb[i-1] = ((l-i+2)%3!=0)?"a":"b";
    }
    console.log(bb);
}

test(1343332);