Вам не нужно очищать вызов функции, который возвращает undefined
, а просто вызывать функцию random2
, потому что функция itselft добавляет элементы в массив.
function random(min, max) {
return Math.floor(Math.random() * (min - max)) + min;
}
function random2(a, b) {
for (let i = 0; i < a; i++) {
x.push(random(0, b));
}
}
var x = [];
random2(5, 100);
console.log(x);
x.length = 0; // better performance than x.splice(0, x.length)
random2(5,100); // call without using push
console.log(x); // no undefined anymore
Лучший подход - вернуть массив в random2
, поскольку эта функция не обращается к внешнему определенному массиву.Чтобы выдвинуть значения, вы можете использовать синтаксис разброса.
function random(min, max) {
return Math.floor(Math.random() * (min - max)) + min;
}
function random2(a, b) {
return Array.from({ length: a }, _ => random(0, b));
}
var x = random2(5, 100);
console.log(x);
x.length = 0;
x.push(...random2(5, 100));
console.log(x);