《用得上的前端知识》系列 - 你我都很忙,能用100字说清楚,绝不写万字长文
实现方案
方案一
// 最优方案
Array(24).fill('a').map((v,i)=>i);
// [0, 1, 2, ..., 23]
方案二
// Array本身
Array(...Array(24)).map((_, h) => h);
// [0, 1, ..., 23]
方案三
// 借用apply
Array.apply(null, Array(24)).map((_, h) => h);
// [0, 1, ..., 23]
方案四
// 借用call
Array.call(null, ...Array(24)).map((_, h) => h);
// [0, 1... 23]
一些关于数据的说明
new Array(len) 做的事情等价于下面的代码:
function(len){
let ary = [];
ary.length = len;
return ary;
}
Array.prototype.fill() 指定范围填充:
let array = [1,1,1,1,1,1];
array.fill(0,1,3); // 从下标1到下标3之前将值改变为0
console.log(array) // output => [1, 0, 0, 1, 1, 1]