数组中 unshift 与解构赋值一起使用,顺序错误分析

js 数组为空时,使用 unshift 方法,通过解构向数组头部插入数据时,会失效,等同于 push 效果。

代码复现:

1
2
3
4
const arr = []
// unshift 2 个值
arr.unshift(...[1,2])
console.log('空数组 unshift 后的值: ',arr);
1
2
// 结果
空数组 unshift 后的值: [ 1, 2 ]

我们发现,上面的结果并不是我们想要的,我们所期望的结果应该是:

1
2
// 期望结果
空数组 unshift 后的值: [ 2, 1 ]

那么,为什么出现上面意外的结果,原因就是因为 arr 初始值为空。