[小笔记]TypeScript/JavaScript数组转置

简介: [小笔记]TypeScript/JavaScript数组转置

[小笔记]TypeScript/JavaScript数组转置

在代数中,矩阵一个是一个方形数组,它由若干个长度相等的子数组构成。所谓转置指的是将一个矩阵中元素的行与列进行互换,就像将将一个矩形沿着对角线翻转一样,如:

[[1,2,3],
 [4,5,6],
 [7,8,9]]

翻转后:

[[1,4,7]
 [2,5,8]
 [3,6,9]]

TypeScript

// 转置一个矩阵型数组
export const T = (ary: any[])=>{
  /*
   * 转置一个二维矩阵的本质就是改变其子数组的结构,
   * 即将原矩阵的行与列在结构上进行互换:
   *  - 新子数组的个数为原任意一个子数组的长度;
   *  - 新任意一个子数组的元素皆依次取自于原每一个子数组。
   * 需要一个二层循环:
   *  - 内层循环构造一个子数组,即从原子数组逐个取出同位序元素;
   *  - 外层循环收集所有子数组。
   */
  let ar = []     // 转置后的数组
  for(let i=0; i<ary[0].length; i++){
    let cd = []   // 某个新子数组
    for(let j=0;j<ary.length;j++){
      cd.push(ary[j][i])
    }
    ar.push(cd)
  }
  return ar
}

JavaScript

// 转置一个矩阵型数组
var T = function (ary) {
    /*
     * 转置一个二维矩阵的本质就是改变其子数组的结构,
     * 即将原矩阵的行与列在结构上进行互换:
     *  - 新子数组的个数为原任意一个子数组的长度;
     *  - 新任意一个子数组的元素皆依次取自于原每一个子数组。
     * 需要一个二层循环:
     *  - 内层循环构造一个子数组,即从原子数组逐个取出同位序元素;
     *  - 外层循环收集所有子数组。
     */
    var ar = []; // 转置后的数组
    for (var i = 0; i < ary[0].length; i++) {
        var cd = []; // 某个新子数组
        for (var j = 0; j < ary.length; j++) {
            cd.push(ary[j][i]);
        }
        ar.push(cd);
    }
    return ar;
};

用例

console.log(T(
  [
    [1,'2',3],
    [4,5,6],
    [7,['8'],9]
  ]
));

Out[]:

[ [ 1, 4, 7 ], [ '2', 5, [ '8' ] ], [ 3, 6, 9 ] ]
目录
相关文章
|
9天前
|
存储 JavaScript 索引
JS中数组的相关方法介绍
JS中数组的相关方法介绍
|
9天前
|
JavaScript Java
JS有趣的灵魂 清空数组
JS有趣的灵魂 清空数组
|
12天前
|
JSON JavaScript 前端开发
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
设置WebStorm像VSCode一样每行代码结尾自动格式化加入“;”分号(JavaScript、TypeScript格式化)
|
2天前
|
JavaScript 前端开发 索引
JavaScript 数组中的增、删、改、查
JavaScript 数组中的增、删、改、查
|
10天前
|
JavaScript 前端开发
TypeScript极速入门笔记1
TypeScript极速入门笔记1
25 4
|
16天前
|
JavaScript 前端开发
JavaScript数组的功能内置类型
数组是JavaScript的内置类型,JavaScript数组的功能特别强大。下面简单介绍一下JavaScript数组。
|
16天前
|
存储 JavaScript 前端开发
在浏览器中存储数组和对象(js的问题)
在浏览器中存储数组和对象(js的问题)
|
18天前
|
JavaScript 前端开发 IDE
TypeScript和JavaScript有什么不同?
TypeScript和JavaScript有什么不同?
|
23天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(六)
JavaScript高级笔记-coderwhy版本
71 0
|
23天前
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(一)
JavaScript高级笔记-coderwhy版本
33 0
JavaScript高级笔记-coderwhy版本(一)