Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中如何将给定矩阵顺时针旋转一个元素_Javascript_Arrays - Fatal编程技术网

在JavaScript中如何将给定矩阵顺时针旋转一个元素

在JavaScript中如何将给定矩阵顺时针旋转一个元素,javascript,arrays,Javascript,Arrays,好的,我想用JS实现这段代码,但我在JS方面不是很高级,我打印出来或测试它时遇到了困难…有人能检查代码并帮助我控制台记录吗 这是我的目标: 这是我写的代码: var矩阵=[[1,2,3]、[4,5,6]、[7,8,9]; 函数旋转矩阵(矩阵){ //行和列的边界指示(索引) 设maxRow=matrix.length-1; 设maxCol=matrix.length-1; 设row=0; 设col=0; //跟踪我们正在使用的ring while(行x.join())对于顺时针旋转,必须逆时针

好的,我想用JS实现这段代码,但我在JS方面不是很高级,我打印出来或测试它时遇到了困难…有人能检查代码并帮助我控制台记录吗

这是我的目标:

这是我写的代码:

var矩阵=[[1,2,3]、[4,5,6]、[7,8,9];
函数旋转矩阵(矩阵){
//行和列的边界指示(索引)
设maxRow=matrix.length-1;
设maxCol=matrix.length-1;
设row=0;
设col=0;
//跟踪我们正在使用的ring
while(行x.join());
旋转矩阵(矩阵);

log(matrix.map(x=>x.join())对于顺时针旋转,必须逆时针旋转。此外,在开始时存储的元素在结束时是需要的,而在其他任何地方都不需要它

功能p(m){
对于(m中的l)
console.log(l.join());
console.log('--');
}
函数ccwrectangle(mtx、顶部、左侧、底部、右侧){
设elem=mtx[上][左];
for(设y=top;yleft+1;x--)//顶部向左
mtx[top][x]=mtx[top][x-1];
mtx[上][左+1]=元素;
}
设m1=[[1,2,3],[4,5,6],[7,8,9];
p(m1);
ccwrectangle(m1,0,0,2,2);
p(m1);
设m2=[1,2,3,4],[5,6,7,8],[9,'A','B','C',['D','E','F','0'];
p(m2);
ccwrectangle(m2,0,0,3,3);
ccwrectangle(m2,1,1,2,2);

p(m2)代码看起来很棒,但对我来说太高级了XD…我重新检查了我的代码并进行了更新..但我在登录时仍然遇到问题..有什么帮助吗?@ValiantLuporiBuzzactaxe我们的方法之间的区别是你将所有元素都保存在矩阵中。简化成一行:
1234
->
2134
->
2314
->
2341
是您采取的步骤,至少我是这么认为的。同时我的代码:
1234
->
2234
->
2334
->
2344
,然后我放回单独存储的
1
,得到
2341
。这两种方法都是有效的。嗨,刚刚让你的代码在这里可以运行。在这个过程中,我在日志记录之前和之后添加了一些。因为它似乎很有效,我不确定问题是什么。(嗯,我必须再次编辑它,因为它显然混合了制表符和空格)
┌     ┐    ┌     ┐ 
|1 2 3|    |4 1 2| 
|4 5 6| -> |7 5 3| 
|7 8 9|    |8 9 6|   
└     ┘    └     ┘