javascript将一个数组分割成块并填充另一个数组

javascript将一个数组分割成块并填充另一个数组,javascript,Javascript,(场景)我有一个包含N个动物的数组,我必须在6天内每天以4到5的范围进行分发。因此,整个星期的范围可以是28=>30 axample: var animals = ["Antelope", "Bisont", "Crocodile", "Dingo","Elephant","Fly","Gnu","Hyena","Porcupine","Llama","Macaque","Nasica","Orangutan","Piton","Quetzal","Rinho"]; 动物=16,最小动物请求=

(场景)我有一个包含N个动物的数组,我必须在6天内每天以4到5的范围进行分发。因此,整个星期的范围可以是28=>30

axample:

var animals = ["Antelope", "Bisont", "Crocodile", "Dingo","Elephant","Fly","Gnu","Hyena","Porcupine","Llama","Macaque","Nasica","Orangutan","Piton","Quetzal","Rinho"];
动物=16,最小动物请求=28

下面的代码片段解决了两个问题: 块作为 和 随机化为:

我需要将groupsize变量从固定值改进为范围值

var animals = ["Antelope", "Bisont", "Crocodile", "Dinosaur","Elephant","Fly","Gnu",
              "Hyena","Porcupine","Llama","Macaque","Nasica","Orangutan","Piton","Quetzal","Rinho"];

var groupSize = 4; // here need range

var groups = _.map(animals, function(item, index){
  return index % groupSize === 0 ? animals.slice(index, index + groupSize) : null; 
  })
  .filter(function(item){ return item; 

});

function shuffle(array) {
  var m = array.length, t, i;
  // While there remain elements to shuffle…
  while (m) {
    // Pick a remaining element…
    i = Math.floor(Math.random() * m--  );   
    // And swap it with the current element.
    t = array[m];
    array[m] = array[i];
    array[i] = t;
  }

  return array;
}

console.log(shuffle(groups));
控制台

[["Porcupine", "Llama", "Macaque", "Nasica"], ["Antelope", "Bisont", "Crocodile", "Dinosaur"], ["Elephant", "Fly", "Gnu", "Hyena"], ["Orangutan", "Piton", "Quetzal", "Rinho"]]

chunk和shuffle都不错,但至少需要6个,并且有4个。对于这两个角色,一些动物必须做第二个回合

所以问题是:我如何用至少4只洗牌动物的块填充数组[6]?任何关于找到正确路径的建议都会得到广泛的赞赏