javascript中创建空数组的正确姿势
使用以下方式来创建包含空值的数据
1、Array.apply(null,{length:10}); 2、Array.from({length:10}); 3、[...Array(10)]
不要使用 new Array(10) 来创建,这种方式会造成稀疏数组。
稀疏数组存在es5和es6下均存在问题:
es5:
- forEach(), filter(), reduce(), every() 和 some() 都会跳过空位。
- map() 会跳过空位,但会保留这个值
- join() 和 toString() 会将空位视为 undefined,而 undefined 和 null 会被处理成空字符串。
es6:
- Array.from 方法会将数组的空位,转为 undefined。
- 扩展运算符(...)也会将空位转为 undefined。
- copyWithin() 会连空位一起拷贝。
- fill() 会将空位视为正常的数组位置。
- for...of 循环也会遍历空位。
- entries()、keys()、values()、find()和 findIndex() 会将空位处理成 undefined。
参考: https://juejin.im/post/5b14cc5de51d45069773a4a9
2条评论
2额e
很棒啊!