Javascript 在二维数组上使用Array.map
所以我有一个二维数组,希望对数组中元素的每个元素使用一个“randomBool”函数 “randomBool”函数只返回一个随机布尔值:Javascript 在二维数组上使用Array.map,javascript,Javascript,所以我有一个二维数组,希望对数组中元素的每个元素使用一个“randomBool”函数 “randomBool”函数只返回一个随机布尔值: const randomBool = () => Boolean(Math.round(Math.random())); 这将是二维数组,我将输入: var test = [ ["just","some","random","text"], [1412,"test",1278391] ] 在for循环中嵌套了一个working for
const randomBool = () => Boolean(Math.round(Math.random()));
这将是二维数组,我将输入:
var test = [
["just","some","random","text"],
[1412,"test",1278391]
]
在for循环中嵌套了一个working for循环:
for (let el of test){
for(let i in el){
el[i] = randomBool();
}
}
我试过这个:
test.forEach(el => el.map(el2 => randomBool()));
但它不起作用。为什么?您需要使用两个嵌套贴图
const randomBools = test.map(outer => outer.map(inner => randomBool()))
forEach
通常用于迭代每个项,以便在不返回任何内容和不改变原始数组的情况下执行某种副作用。例如,将每个项目打印到控制台
另一方面,map
用于获取一个数组并返回一个大小相同的新数组,其中的值以某种方式进行了转换,而不会改变原始数组。例如,列表中的所有单词都应大写
由于要从现有的二维数组返回新的二维数组,并转换一些数据,因此需要嵌套映射函数。这将首先映射行(外部),然后映射列(内部)。内部映射的结果将被收集到外部映射中,您将得到一个包含新值的二维数组,所有这些都不会修改原始数组。使用
map
而不是forEach
可能?可能是