Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 两个表达式之间的差异,一个有扩散,另一个没有扩散?_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 两个表达式之间的差异,一个有扩散,另一个没有扩散?

Javascript 两个表达式之间的差异,一个有扩散,另一个没有扩散?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,以该对象为例 ingredients = { salad: 3, bacon: 1, cheese: 1, meat: 0 } 我有两个表达式,结果不同,一个没有扩散算子 Object.keys(ingredients).map(igKey=>{ return [Array(3)] }) Object.keys(ingredients).map(igKey=>{ return [...Array(3)] }) 另一

以该对象为例

 ingredients = {
     salad: 3,
     bacon: 1,
     cheese: 1,
     meat: 0
 }
我有两个表达式,结果不同,一个没有扩散算子

Object.keys(ingredients).map(igKey=>{ 
    return [Array(3)]
})
Object.keys(ingredients).map(igKey=>{ 
    return [...Array(3)]
})
另一个是使用spread运算符

Object.keys(ingredients).map(igKey=>{ 
    return [Array(3)]
})
Object.keys(ingredients).map(igKey=>{ 
    return [...Array(3)]
})
无扩展运算符的结果

带扩展运算符的结果


我读到spread运算符用于组合多个数组,在本例中spread运算符执行什么操作?

如果将第一个示例中的
[数组(3)]
更改为
数组(3)
(无
[]
),它们将给出相同的结果。这实际上是做事情的首选方式,因为
[…Array(3)]
创建一个数组,然后创建另一个数组并将第一个数组复制到第二个数组。只要
Array(3)
本身就足够了。我建议使用
Array.from({length:3})