javascript - 蜗牛矩阵数组javascript

标签 javascript arrays matrix

我正在寻找一个函数来执行此操作,

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 ] ]

最佳答案

您距离完成这项工作还不到一百万英里。

您可以捕获外部数组索引(y) 和内部数组索引(x)。 使用这 2 个值,您可以计算出要在单元格 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(""));
});

关于javascript - 蜗牛矩阵数组javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51288400/

相关文章:

javascript - babel-eslint 不允许动态导入

javascript - 文本框在 javascript 警报后更改高度和边框宽度

javascript - 为什么我不能让我的 div 填满我的窗口的 100%?

javascript - 从 JavaScript 数组中删除 id 的更智能方法

javascript - jQuery Accordion 在事件 : false is set 时第一次单击后中断

java - 如何创建 Set<String> 数组?

java - 如何从文件读取到数组

python - 从 Numpy 中的 2 个向量形成矩阵,重复 1 个向量

c++ - 3×3矩阵乘法

C11 VLA 矩阵访问