代码:
/**
* @param {number[][]} A
* @return {number[][]}
*/
var transpose = function(A) {
var result = [];
for(var k=0; k<A[0].length; k++ ){
result[k] = [];
}
for(var i=0;i<A.length;i++){
for(var j=0;j<A[i].length;j++){
result[j][i] = A[i][j];
}
}
return result;
};
解析:
不像C或者JAVA,JS不支持多维数组,JS定义多维数组是通过定义一维数组后再在每一个元素里面定义数组实现的。多维数组也是同样道理。
这道题主要就是要理解矩阵的转置,A[i][j] =B[j][i], 遍历之后做这样的一个操作。
拓展一下,一维数组的元素可以通过数字或者字符串去索引。
二维数组只能通过数字去索引 a['a'] = 1, 这样的是不被允许的
在使用ajax传递数据的时候,数组只能使用数字去索引,如果要通过字符串,则使用对象嵌套
如:var data ={
'a':{'id':1,'url':h}
}; // 通过data['a']['id']访问数据 也可以通过 data.a.id也可以访问