【问题标题】:Group array of files by file size to be uploaded按要上传的文件大小对文件数组进行分组
【发布时间】:2020-10-20 22:34:24
【问题描述】:

我正在尝试创建一个函数,该函数可以将要上传的文件数组分组为 10MB 或更少的块。例如小规模。

示例:[1mb, 1mb, 5mb, 4mb, 9mb]

预期输出:[[5mb, 4mb, 1mb], [9mb, 1mb]]

我需要该函数遍历数字数组并根据最大 10mb 大小对它们进行分组。我有点困惑我应该怎么做才能做到这一点。

谢谢

【问题讨论】:

    标签: javascript node.js arrays


    【解决方案1】:

    希望对你有所帮助。

    var data = [1, 1, 5, 4, 9];
    
    function getGroups(inputes, maxSize) {
      inputes.sort((a, b) => b - a); //sort DESC
      var result = [];
      while (inputes.length) {
        var groups = [];
        var sum = inputes[0]; // pick first one (the biggest)
        groups.push(inputes[0]);
        inputes.splice(0, 1); //remove picked item  
        var j = 0;
        while (j < inputes.length && sum < maxSize) {
          if (inputes[j] + sum <= maxSize) {
            sum += inputes[j];
            groups.push(inputes[j]);
            inputes.splice(j, 1);
          } else {
            j++;
          }
        }
        result.push(groups);
      }
      return result;
    }
    console.log(getGroups(data , 10));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2021-05-05
      相关资源
      最近更新 更多