美文网首页程序员
TypeScript二维数组实现

TypeScript二维数组实现

作者: 横竖撇折点 | 来源:发表于2018-12-05 16:11 被阅读0次

在一个游戏项目中要用到二维数组,发现操作挺麻烦的,自己写一个,使用方便,简单易懂。

使用方式:

            let my2DArray:My2DArray = new My2DArray(5,6,0);

            console.log("数组:",my2DArray.getArray());

            console.log("取值:",my2DArray.getValue(1,1));

            my2DArray.setValue(1,1,5);

            console.log("赋值后取值:",my2DArray.getValue(1,1));

            console.log("取数组范围外的值:",my2DArray.getValue(10,1));

运行结果:

My2DArray.ts源码如下:

    /**

    * @author 杨松恺

    * @date 2018-12-05 15:45:08

    * 定义二维数组,提供相关操作

    */

    class My2DArray{

        private my2DArray : Array<Array<number>> =  new Array<Array<number>>();

        private rows :number;

        private columns :number;

        /**

        * 初始化数组

        */

        public constructor(rows:number,columns:number,value:number){

            this.rows = rows;

            this.columns = columns;

            this.initRows(rows);

            this.initColumns(columns,value);

        }

        /**

        * 取数组中的值

        */

        public getValue(rows:number,columns:number):number{

            if(rows < 0 || columns < 0 || rows >= this.rows || columns >= this.columns){

                return null;

            }

            return this.my2DArray[rows][columns];

        }

        /**

        * 为数组赋值

        */

        public setValue(rows:number,columns:number,value:number):void{

            if(rows < 0 || columns < 0 || rows >= this.rows || columns >= this.columns){

                return ;

            }

            this.my2DArray[rows][columns] = value;

        }

        /**

        * 初始化行数

        */

        private initRows(rows:number):void{

            if(rows < 1) {

                return;

            }

            for(let i = 0 ; i < rows ; i ++){

                this.my2DArray.push(new Array<number>());

            }

        }

        /**

        * 初始化列数

        */

        private initColumns(columns:number,value:number):void{

            if(columns < 1){

                return;

            }

            for(let i = 0 ; i < this.my2DArray.length ; i ++){

                for(let j = 0 ; j < columns ; j ++){

                    this.my2DArray[i].push(value);

                }

            }

        }

        /**

        * 获取数组

        */

        public getArray():Array<Array<number>>{

            return this.my2DArray;

        }

    }

---------------------

作者:--天涯-明月-刀--

来源:CSDN

原文:https://blog.csdn.net/qq_41089021/article/details/84837966

版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章

网友评论

    本文标题:TypeScript二维数组实现

    本文链接:https://www.haomeiwen.com/subject/xirwcqtx.html