Javascript 使用jquery以转置格式打印数组

Javascript 使用jquery以转置格式打印数组,javascript,Javascript,我有点陷入了下面的逻辑 var t=new Array(), i=1; 对于(var s=0;s

我有点陷入了下面的逻辑

var t=new Array(),
i=1;
对于(var s=0;s<7;s++){
t[s]=[];
对于(j=0;j<7;j++){
t[s][j]=i;
如果(i==6){
i=0;
}
i++;
}
}

控制台日志(t)可以通过旋转数组来实现

设len=7;
设a=Array.from(Array(len.keys());
设ans=[];
for(设i=0;i控制台日志(ans)我将用另一种方法来解决它-您正在构建一个二维数组,每个新元素(或行)将移位或递增一(6是最大值)
因此,将每个值增加1并存储结果

$column=[1,2,3,4,5,6,0];
$max=6;
$rows=7;
$result=[];
对于($i=0;$i<$rows;$i++){
$result[$i]=[…$column];
对于($j=0;$j<$column.length;$j++){
如果($column[$j]=$max)$column[$j]=0;
else$列[$j]++;
}
}
console.log($result)错误的原因

当对案例
i==6执行此操作时

i = 0
i++
你在增加我两次。。。(从6到1,而不是从6到0)

你可以:

if (i === 6) {
  i = 0;
} else {
  i++;
}
或者更优雅

i = (i + 1) % 7 
现在你想让我在分配任务前生效

t[s][j]=i
如果
i==7

所以在前面对它进行模化

t[s][j] = i % 7
i++
let t=[]
设i=1
for(设s=0;s<7;s++){
t[s]=[]
i=s+1//从您的行开始
对于(设j=0;j<7;j++){
t[s][j]=i%7
++我
}
}

console.log(t.map(r=>r.join(',')).join('\n'))
另一种方法是使用模。使用
k%n
将使数字随着
n

此外,您不需要变量
i
。您可以使用
s+j+1
来计算它

功能p(a)
{
设str=“”;
为了(我的a)
{
代表(j/i)
{
str+=j+“”;
}
str+=“\n”;
}
console.log(str);
}
var t=新数组();
var arraySize=7;
var rotateEvery=7;
对于(var s=0;sp(t)这不是php,您能不能删除所有的美元,它们会降低可见性,最后这不是依赖于jquery的。@user753642有一个无输入数组。它将创建一个数组。和
$
符号已删除。谢谢你的指点。谢谢你的回答。。我真的很感激。它也工作得很好。但我不想声明预定义的列值。像这样
$column=[1,2,3,4,5,6,0]不,这是我想要的输出数组是一样的,我只添加了函数
p
,以简化演示