我尝试在map
中使用new Array()
构造函数,以便创建一个创建元素列表的单行代码。如下所示:
let arr = new Array(12).map( (el, i) => {
console.log('This is never called');
return i + 1;
});
阅读docs,这种行为是有意义的。
文档基本上说,即使在数组中声明了未定义的值,也会执行map的回调,但不会像之前的代码那样创建空数组。
因此,这应该是可行的:
var arr = new Array(12);
for(let i = 0; i < arr.length ; i++){
arr[i] = undefined;
}
let list = arr.map( (e, i) => {
console.log(i + 1);
return i + 1;
});
所以,我们也可以这样做:
let newArray = (length) => {
let myArray = new Array(length);
for(let i = 0; i < length; i++) myArray[i] = undefined;
return myArray;
};
console.log( newArray(12).map( (el, i) => i + 1 ) );
所以我的问题是。有没有更好/更好的使用map函数的方法呢?
提前感谢!
https://stackoverflow.com/questions/37487602
复制相似问题