[英]I don't understand why this function's output is one
This a code a made to move rows in a (3*3) matrix.这是一个用于在 (3*3) 矩阵中移动行的代码。
const transY =(arr)=> {
const arrtY = [];
for (let i = 1; i < 4; i++) {
for (let j = 0; j < 3; j++) {
if (i==3) {
return arrtY.unshift(arr[3*0+j]);
}
return arrtY.push(arr[3*i+j]);
}
}
return arrtY;
}
Expected output (in an array) :预期输出(在数组中):
1 2 3 7 8 9 4 5 6
4 5 6 ==> 1 2 3 ==> 7 8 9 ==> [...]
7 8 9 4 5 6 1 2 3
When I log arrtY in the console I only see 1.当我在控制台中登录 arrtY 时,我只看到 1。
Here's a solution这是一个解决方案
const transY =(arr)=> {
const arrtY = [];
function rowpush(i) {
for (let j = 0; j < 3; j++) {
arrtY.push(arr[3*i+j]);
}
}
rowpush(2);
rowpush(0);
rowpush(1);
return arrtY;
}
Possible solution:可能的解决方案:
function transform(arr) { var res = []; for(var i = 6; res.length < 9; i = (i + 1) % 9) res.push(arr[i]); return res; } var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; console.log(JSON.stringify(arr)) arr = transform(arr); console.log(JSON.stringify(arr)) arr = transform(arr); console.log(JSON.stringify(arr))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.