使用JS代码生成螺旋数组(代码简洁易懂)

1、生成顺时针螺旋数组。

输入数字n,生成n行n列的螺旋数组,例如

n=1,输出

1;

n=2,输出

1 2

4 3

n=3,输出

1 2 3

8 9 4

7 6 5 

……

代码1:思路:首先声明一个二维数组,然后对数组从最外圈到最内圈依次赋值。

function spiralArray(n){
	var m=0;
	var a=1;
	var arr=[];
	for(var i=0;i

当n=8时,结果如下

使用JS代码生成螺旋数组(代码简洁易懂)_第1张图片

上述代码当n为奇数时,sprialArray函数访问不到数组中间那项,代码中通过将数组的初始值设为n*n解决这个问题。代码2则对sprialArray函数进行了修改,解决了这一问题。

代码2:解决当n为奇数上述代码sprialArray函数无法为数组中间项赋值的问题

  function sprialArray(n){
	var m=0;
	var a=1;
	var arr=[];
	for(var i=0;i

2、生成逆时针螺旋数组,并且数值递减。思路上述代码相同。只是改变赋值顺序。

例如,n=0,输出

1

n=1,输出

7 8 9

6 1 2

5 4 3

n=2,输出

21 22 23 24 25

20  7   8   9  10

19   6   1   2  11

18   5   4   3  12

17  15 15 14 13

 function sprialArray(num){
	var n=2*num+1;
	var m=0;
	var a=n*n;
	var arr=[];
	for(var i=0;i
当n=3时,结果如下。
 

使用JS代码生成螺旋数组(代码简洁易懂)_第2张图片

 

 

你可能感兴趣的:(前端,JavaScript,螺旋数组,算法)