我正在寻找执行此操作的功能,
test(3);
#result
3333333
3222223
3211123
3210123
3211123
3222223
3333333
test(1)
#result
111
101
111
我正在尝试的是这个,但是我可以找到i和n之间的任何关系 每个循环。你不能告诉我算法吗?
function test(n) {
return Array.from({ length: (n * 2) + 1 }, () => {
return Array.from({ length: (n * 2) + 1 }, (item, i) => {
return i;
})
});
}
test(3)
结果:
[ [ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ],
[ 0, 1, 2, 3, 4, 5, 6 ] ]
答案 0 :(得分:1)
距离这项工作还不到一百万英里。
您可以捕获外部数组索引(y)和内部数组索引(x)。 使用这两个值,您可以计算出要在单元格x,y中输入的内容。
例如。
function test(n) {
return Array.from({ length: (n * 2) + 1 }, (_, y) => {
return Array.from({ length: (n * 2) + 1 }, (_, x) => {
return Math.max(
x > n ? x - n : n - x,
y > n ? y - n : n - y
);
})
});
}
const ret = test(3);
ret.forEach((i) => {
console.log(i.join(""));
});