Использование Array.map с новым конструктором Array
Я пытался использоватьnew Array()
конструктор сmap
для того, чтобы создать однострочный код, который создает список элементов. Что-то вроде этого :
let arr = new Array(12).map( (el, i) => {
console.log('This is never called');
return i + 1;
});
чтениедокументыПоведение имеет смысл.
В основном документы говорят, что обратный вызов 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 ) );
Итак, мой вопрос. Есть ли лучший / красивый способ сделать это с помощью функции карты?
Заранее спасибо!