Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在二维数组上使用Array.map_Javascript - Fatal编程技术网

Javascript 在二维数组上使用Array.map

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

所以我有一个二维数组,希望对数组中元素的每个元素使用一个“randomBool”函数

“randomBool”函数只返回一个随机布尔值:

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
可能?可能是