JavaScript“交错的棋盘格”

时间:2015-11-10 20:01:58

标签: javascript

我有一个代码测试的问题,这就是我想出来的:

    function pattern(){
        var str = ''

        for (var i = 0; i < 10; i++){
            if (i == 0 || i == 3 || i == 6 || i == 9){
                for (var j = 0; j < 10; j++){
                    if (j == 0 || j == 3 || j == 6 || j == 9){
                        str += '1'      
                    } else {
                        str += '0'
                    }
                    if (j == 9){
                        str += '\n'
                    }
                }           
            }
            if (i == 1 || i == 4 || i == 7){
                for (var j = 0; j < 10; j++){
                    if (j == 1 || j == 4 || j == 7){
                        str += '1'      
                    } else {
                        str += '0'
                    }
                    if (j == 9){
                        str += '\n'
                    }
                }
            }
            if (i == 2 || i == 5 || i == 8){
                for (var j = 0; j < 10; j++){
                    if (j == 2 || j == 5 || j == 8){
                        str += '1'
                    } else {
                        str += '0'
                    }
                    if (j == 9){
                        str += '\n'
                    }
                }
            }
        }
        console.log(str)
    }

这是输出:

  

     1001001001个
     0100100100
     0010010010
     1001001001个
     0100100100
     0010010010
     1001001001个
     0100100100
     0010010010
     1001001001

所以它有效,但我想知道是否有更有效的方法对其进行编码。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我相信这也是一样的:

function pattern(){
    var str = ''
    for (var i = 0; i < 10; i++){
        var iMod = i % 3;
        for (var j = 0; j < 10; j++){
            if (j % 3 == iMod){
                str += '1'      
            } else {
                str += '0'
            }
        }
        str += '\n'
    }
    console.log(str)
}

答案 1 :(得分:0)

这是我能想到的最简单的解决方案。

for (var i=0;i<10;i++){
  var str = "1001001001001001001";
  console.log(str.substring(str.length-10-i, str.length-i));
}