比如,有个需求,需要快速创建一个100位成员的数组 arr ,那么主要有以下一些方法可以实现。
const arr = [];
传统的for 循环
for(let i = 0; i <= 10; i++) {
arr.push(i + 1);
}
console.log(arr); // [0, 1, 2, ... 99]
new Array() + forEach() 方法
(new Array(100)).fill().forEach((item, index) => arr[index] = index + 1);
console.log(arr); // [0, 1, 2, ... 99]
new Array() + map() 方法
arr = (new Array(100)).fill().map((item, index) => item = index + 1);
console.log(arr); // [0, 1, 2, ... 99]
Array.form() 方法
arr = Array.from({length: 100}, (item, index) => item = index +1);
console.log(arr); // [0, 1, 2, ... 99]
Array.apply() + map() 方法
arr=Array.apply(null,{length:100}).fill().map((item,index) => item = index+1);
console.log(arr); // [0, 1, 2, ... 99]
Array.prototype.slice() + map() 方法
arr = Array.prototype.slice.call({length: 100}).fill().map((item, index) => {
item = index + 1;
});
console.log(arr); // [0, 1, 2, ... 99]
[ ].slice() + map() 方法
arr=[].slice.call({length: 100}).fill().map((item,index) => item = index + 1);
console.log(arr); // [0, 1, 2, ... 99]
...扩展运算符 + map() 方法
arr = [...(new Array(100))].map((item, index) => item = index);
console.log(arr); // [0, 1, 2, ... 99]