通过重复原始数组从现有数组JavaScript创建新数组

时间:2019-09-11 04:08:30

标签: javascript arrays

在我的项目中,我需要从现有数组创建一个新数组。例如,如果原始数组像

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]

应根据动态长度重复原始数组来创建新数组。

2 个答案:

答案 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());