gpt4 book ai didi

javascript - 如何使用 map 和 forEach 反转另一个数组中的 bool 数组?

转载 作者:行者123 更新时间:2023-11-30 10:59:14 25 4
gpt4 key购买 nike

我正在尝试反转和反转二维数组中的数组。

let a = [[true, false, false], [false, true, true]];

我创建了一个函数,它接收二维数组 a 并对其执行 forEach 操作。这需要每个内部数组并将其反转。然后我尝试获取刚刚反转的单个数组并尝试对其执行 map 以反转数组中的每个值 (bool => !bool)。

此函数似乎适用于 reverse(),但我不明白为什么 map() 似乎不起作用。像这样链接循环/迭代箭头函数是不可能的吗?

var reverseInvert = a => {
a.forEach(arr => arr.reverse().map(bool => !bool));
return a;
};

预期结果:

[[ true, true, false], [false, false, true]]

实际结果:

[[false, false, true], [true, true, false]]

最佳答案

.map 始终创建一个 数组 - 现有数组不会发生变化。 .map 创建一个新的更大的数组:

let a = [[true, false, false], [false, true, true]];
var reverseInvert = a => {
const newA = a.map(arr => arr.reverse().map(bool => !bool));
return newA;
};
console.log(reverseInvert(a));

或者,如果你想改变(除非必要,否则不推荐),你必须显式地将新映射的内部数组重新分配给外部数组的索引:

let a = [[true, false, false], [false, true, true]];
var reverseInvert = a => {
a.forEach((arr, i, outerArr) => {
outerArr[i] = arr.reverse().map(bool => !bool)
});
return a;
};
console.log(reverseInvert(a));

关于javascript - 如何使用 map 和 forEach 反转另一个数组中的 bool 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58584720/

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