【发布时间】:2015-12-29 05:29:46
【问题描述】:
想在javascript中创建一个二维m x n数组,基于列数,作为我函数中的参数输入,行将从另一个参数创建,该参数将是一个数组。
我希望达到的目标 - 期望的结果:
var arr = [0,1,2,3,4,5,6,7,8,9]
function TwoDimensionalArray(numRows, numCols) {
//Magic happens here!
}
TwoDimensionalArray(arr, 4);
如您所见,下面是一个 3 x 4 矩阵和所需的结果
[[0,1,2,3], [4,5,6,7],[8,9]]
输入大小没有影响,列数是关键因素和决定因素。
我目前拥有的 - 不想要的结果:
var arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13]
function TwoDimensionalArray(numRows, numColumns) {
var twoD = [];
for (var row = 0; row < numRows.length; ++row) {
var cardIndex = numRows[row]
// console.log(numRows[row]);
var columns = [];
for(var j =0; j < numColumns; ++j) {
columns[j] = cardIndex;
}
twoD[cardIndex] = columns;
}
return twoD;
};
var matrixTwoD = TwoDimensionalArray(arr, 4);
console.log(matrixTwoD);
console.log(matrixTwoD[0][0]);
console.log(matrixTwoD[0][1]);
console.log(matrixTwoD[0][2]);
console.log(matrixTwoD[0][3]);
我当前的代码创建了一个数组,每个元素重复 4 次,直到列大小为 4 的数字 13:[[0,0,0,0], [1,1,1,1]....[13,13,13,13]]
也许在我的 for 循环中做错了什么,或者没有正确解决问题。但是任何可以为我指明正确方向以获得上述愿望结果的东西。
弹跳
也有人会向我指出与此类问题有关的矩阵代数的其他资源以及有助于自学的任何一般性资源。
非常感谢!
【问题讨论】:
-
一个不错的库:mathjs.org/index.html 它提供矩阵操作。
标签: javascript arrays matrix linear-algebra