更新矩阵阵列

时间:2015-08-28 21:06:00

标签: javascript arrays

我需要使用一个函数在javascript中创建一个看起来像这样的网格:

X ---------
XX --------
XXX -------
XXXX ------
XXXXX -----
XXXXXX ----
XXXXXXX ---
xxxxxxxx--
xxxxxxxxx-
xxxxxxxxxx

和此:

X ---------
XX --------
XXX -------
XXXX ------
XXXXX -----
XXXXX -----
XXXX ------
XXX -------
XX --------
x ---------

//Build Matrix
function initMatrix(max) {
var myMatrix = [];
var i;
for(i = 0; i < row; i++){
    myMatrix.push([]);
    var j;
    for(j = 0; j < col; j++) {
        if(j < max) {
            myMatrix[myMatrix.length - 1].push('*');
        } else {
           myMatrix[myMatrix.length - 1].push('-');
        }
    }
}
return myMatrix;

}

此处可以查看更多此代码

https://jsfiddle.net/0yc7acev/

感谢先进的帮助!

1 个答案:

答案 0 :(得分:0)

您好我已经为您提供了解释如何执行此操作的文档并提供了两种解决方案:https://tonicdev.com/tonic/stars-example。如果您有任何问题,请告诉我们!

编辑:我意识到你想要它们在矩阵中,而不是字符串,所以我做了一些修改,将它们放在一个矩阵中:https://tonicdev.com/tonic/stars-matrix(旧的仍然显示)如何把它们全部放在字符串中。)

最后的解决方案就是:

function drawStars(starCounts)
{
    return starCounts.map(function (starCount)
    {
        return (new Array(starCount + 1).join("*") + 
                new Array(lineLength - starCount + 1).join("-")).split("")
    });
}

其中starCounts是一个数组。