1

通过在以下示例中使用 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”。为什么不是?

4

1 回答 1

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);
于 2013-04-12T15:13:49.630 回答