在我的项目中,我需要从现有数组创建一个新数组。例如,如果原始数组像
var arr1 = [1,2,3,4,5];
我需要创建一个新的长度为7的数组,这意味着它应该如下所示
var newArr = [1,2,3,4,5,1,2];
新数组的长度是动态的,如果长度为9,则它应该像
var newArr = [1,2,3,4,5,1,2,3,4];
如果该值是15,则应为以下格式
var newArr = [1,2,3,4,5,1,2,3,4,5,1,2,3,4,5]
应根据动态长度重复原始数组来创建新数组。
答案 0 :(得分:0)
这里是一个选择,使用Array.from
并取模:
var arr1 = [1,2,3,4,5];
const makeNewArr = length => Array.from(
{ length },
(_, i) => arr1[i % arr1.length]
);
console.log(makeNewArr(7));
答案 1 :(得分:0)
您可以使用简单的for循环来做到这一点。
function generateArray(length) {
var arr = [];
var max = 5;
var value = 1;
for (var i = 1; i <= length; i++) {
if (value > max) {
value = value % max;
}
arr.push(value);
value++;
}
return arr;
}
// Using toString() to display output in one line.
console.log(generateArray(7).toString());
console.log(generateArray(9).toString());
console.log(generateArray(15).toString());