【问题标题】:How to separate arrays in jsjs中如何分隔数组
【发布时间】:2017-06-20 06:34:27
【问题描述】:

我有 82 个项目的数据,我想在一个文件中每个写入 10 个。如何分隔数组,以便在另一个文件中每个得到 10 个和 2 个。

我的代码,

 var data  = [];
 data.forEach(function(i,v) {
   if((v != 0) && (v%10 === 0)) {
      var appendData = blogList.splice(0,10);
      fs.writeFile(appendData){

      }
   }

我有 82 个项目的数据,我想在一个文件中每个写入 10 个。如何分隔数组,以便在另一个文件中每个得到 10 个和 2 个。

但是我正在获取文件中的前 10 个项目。谁能帮助我。谢谢。

【问题讨论】:

标签: javascript angularjs node.js mean-stack


【解决方案1】:

简单的解决方案是:

let chunk = 10;
for (let i=0,j=blogList.length ; i<j ; i+=chunk) {
    let  appendData = blogList.slice(i,i+chunk);
    fs.writeFile(appendData){
        .....
    }
}

只有前 10 个进入文件

let  appendData = blogList.slice(0,10);
fs.writeFile(appendData){
    .....
}

【讨论】:

    【解决方案2】:

    每次达到 10 个元素时,您都必须获取新文件。如果当前索引不是 10 的倍数,那么您只需将该值添加到当前文件中

    var data = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K"];
    var myFile = "";//Get new file
    data.foreach((x, i){
      if(i%10===0){
        myFile = ...//Get new file
      }
      myFile.writeFile(x){...}//Add the data to the file
    });
    

    【讨论】:

      【解决方案3】:

      使用此代码,您将拥有一个arrayobjects 作为{group: n, data:[]},您可以在data 上使用ng-repeat

      var app = angular.module("app", []);
      
      app.controller("ctrl", ["$scope", function($scope) {
      
        var data = ["a", "b", "c", "d", "e", "f", "g", "h", "k", "l", "m", "n", "o", "r", "i", "q", "s", "t", "x", "z", "u", "hh"];
      
        $scope.array = [];
        var index = 1;
        while (data.length) {
          var object = {
            group: index++,
            data: []
          };
          object.data = data.splice(0, 10);
          $scope.array.push(object);
        }
      
      }]);
      <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
          <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
      
      <div class="container" ng-app="app" ng-controller="ctrl">
        <ul class="list-group" ng-repeat="object in array">
          <li class="list-group-item active">group {{object.group}}</li>
          <li class="list-group-item" ng-repeat="item in object.data">{{item}}</li>
        </ul>
      </div>

      【讨论】:

        【解决方案4】:
        Try this
        
        var data = [];
        for(var i=0;i<82;i++){
            data.push(i);
        }
        var chunkSize = 10;
        
        var arr = data.reduce((acc, item, idx) => {
          let group = acc.pop();
          if (group.length == chunkSize) {
            acc.push(group);
            group = [];
          }
          group.push(item);
          acc.push(group);
          return acc;
        }, [[]]);
        
        console.log(arr);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-11
          • 1970-01-01
          相关资源
          最近更新 更多