gpt4 book ai didi

javascript - 如何在 JavaScript ES6 中功能性地遍历矩阵?

转载 作者:行者123 更新时间:2023-12-02 22:08:25 25 4
gpt4 key购买 nike

这是我为 Hackerrank 上的“Staircase”挑战提交的代码:

function staircase(n) {
// fill() fills out `undefined` items, which helps to initiate new n*n matrix
let matrix = Array(n).fill().map(() => Array(n).fill());

matrix.forEach((curArr, idY) => {
curArr.forEach((curVal, idX) => {
curVal = (idX + idY + 1 >= n) ? '#' : ' ';
process.stdout.write(curVal);
}, [])
console.log();
}, []);
}

当我使用staircase(6)进行测试时,我确实得到了预期的结果:

     #
##
###
####
#####
######

但是,当我修改代码以检查 matrix 时,如下所示:

function staircase(n) {
// fill() fills out `undefined` items, which helps to initiate new n*n matrix
let matrix = Array(n).fill().map(() => Array(n).fill());

matrix.forEach((curArr, idY) => {
curArr.forEach((curVal, idX) => {
curVal = (idX + idY + 1 >= n) ? '#' : ' ';
}, [])
}, []);

console.log(matrix);
}

这是我得到的:

[ [ undefined, undefined, undefined, undefined, undefined, undefined ],
[ undefined, undefined, undefined, undefined, undefined, undefined ],
[ undefined, undefined, undefined, undefined, undefined, undefined ],
[ undefined, undefined, undefined, undefined, undefined, undefined ],
[ undefined, undefined, undefined, undefined, undefined, undefined ],
[ undefined, undefined, undefined, undefined, undefined, undefined ] ]

所以我的问题是:

  1. 为什么matrix没有被修改?
  2. 是否有任何纯函数式方法可以解决此问题(即仅使用 map() ?)

最佳答案

这就是我要做的。

const array = (length, lookup) => Array.from({ length }, (_, i) => lookup(i));

const string = (separator, length, lookup) => array(length, lookup).join(separator);

const staircase = n =>
console.log(
string("\n", n, i =>
string("", n, j =>
i + j < n - 1 ? ' ' : '#')));

staircase(9);

除了 console.log 之外,staircase 函数是纯函数。

关于javascript - 如何在 JavaScript ES6 中功能性地遍历矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com