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})