Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Как в JS заполнить массив n элементами подряд, не прибегая к циклам for, while, .forEach()

Есть пустой массив let=myarr;
Нужно получить массив c любым именем [0,1,2,3,..,n];
(Использовать можно только reduce, map)

Дополнен

Короче нужно автоматически создать массив заполненный числами от нуля до числа n

По дате
По рейтингу
Аватар пользователя
Новичок
8лет

// ECMAScript 6
function sequence(size) {
size = Number.parseInt(size, 10);
if (size !== NaN && size !== 0) {
let array = new Array(size);
array.fill(0);
return array.map(function (x, dx = 0) {
x += dx;
dx += 1;
return x;
});
} else {
return [];
}
}
console.log(sequence(20));

Аватар пользователя
Профи
8лет

var n = 50;
test = (new Array(n+1)).join().split(',').map((d,i)=>i)
По мне это какое-то извращение)

Аватар пользователя
Оракул
8лет
Аватар пользователя
Высший разум
8лет

Ну раз нельзя цикл, значит будет рекурсия:

function gen_array(len, data) {
if (!data) { data = []; }
if ( data.length > len ) { return data; }
data[data.length] = data.length;
return gen_array(len, data);
}

console.log(gen_array(10));

Аватар пользователя
Профи
8лет

var arr = [];
var filler = [0,1,2,3,..,n];

arr.push.apply(arr, filler);