目录
一、使用for循环
二、使用map方法
一、使用for循环
二维数组中的行和列交换,原来数组的行来作为交换后的列也就是交换后的二维数组的长度,原来数组的列,作为交换后的行
const LIST = [[12, 45, 3],[3, 9, 4],];
/**建议使用for循环,运行效率最高相对于map和foreach不需要反复调用回调函数 *//**交换后的二维数组长度 交换后有三个数组,每个数组中有两个元素 */const COLS = LIST[0].length;/**交换后的二维数组中的数组元素的长度 */const ROWS = LIST.length;let NEW_LIST = Array(COLS).fill([]);console.log(NEW_LIST[0] === NEW_LIST[1]);//trueconsole.log(NEW_LIST[1] === NEW_LIST[2]);//truefor (let i = 0; i < COLS; i++) {/**需要记住!!!使用fill创建空数组,所有空数组指向一个地址,所以如果修改了其中一个其他都会改变 */// 每次外层循环必须为新行,创建独立的内存空间,否则每一次都使用的相同地址,会导致结果为最后一次循环的结果NEW_LIST[i] = [];for (let j = 0; j < ROWS; j++) {NEW_LIST[i][j] = LIST[j][i];}}
二、使用map方法
const LIST = [[12, 45, 3],[3, 9, 4],];
let NEW_LIST = Array(COLS).fill([]);
//交换后的数组个数NEW_LIST
//给每个空数组传值,也就是交换后对应的列
const CHANGE_LIST = NEW_LIST.map((item, i) => LIST.map((item) => item[i]));