0

我需要使用區間創建一個多維數組。我有5個用戶的數據每5秒增長一次。每個用戶都需要數組來保存這些數據,以便以後可以爲每個用戶訪問。動態多維數組循環

currently $rootScope.BHR looks like this: 
[1,2,3,4,5,6,7,8,9,10...] <--after 10 secs/ 2 intervals 

I want this <--after 10 sec/2 intervals 
[1,6..] //key0 
[2,7..] //key1 
[3,8..] //key2 
[4,9..] //key3 
[5,10..]//key5 

// CODE

var liveDataCtrl = angular.module("xo").controller("liveDataCtrl", ["$scope", "$rootScope", "$http", "$interval", "lodash", 
     function ($scope, $rootScope, $http, $interval, lodash) { 
      $rootScope.BHR = []; 
      function shout() { 
       $http.get("URL") 
         .then(function (live) { 
          $scope.live = live.data; 
          var key; 
          for (key in $scope.live) { 
           console.log($scope.live[key].personnelID, "keys"); 
           var getId = $scope.live[key].personnelID; 
           $http.get(URL + getId) 
             .then(function (all) { 
              var data = all.data[0].HR; 
            console.log(all.data[0].HR); 
              $rootScope.BHR.push(data); 
             }) 
          } 
         }) 
      } 
      $interval(shout, 5000); 

      function hrLive() { 
       console.log($rootScope.BHR, "SHOUT"); 
      } 
      $interval(hrLive, 5000); 
     }]); 

回答

0

那麼,有沒有真正的多維數組本身,什麼JavaScript有是對象,這或多或少同樣的事情(但因爲標籤的事,我們會稱它們是什麼)。

要聲明一個新的對象,使用語法

var myObj = {}; 

然後,追加你可以使用點或括號標記的新屬性:

var a = 'foo'; 
myObj[a] = [2,3,4]; 
myObj.bar = [5,6,7]; 
/** 
* myObj = { 
* foo: [2, 3, 4], 
* bar: [5, 6, 7] 
* }; 
*/ 

什麼你想做的事在代碼開始運行時聲明一個新對象,然後將該對象的新屬性聲明爲數組。 I created a plunk that demonstrates how to accomplish what I believe you are trying to do

+0

是的,這正是我想要做的。謝謝! – Jamal

+0

當然,如果答案適合您,請將此問題標記爲已回答,以便將來任何有類似問題的人都可以輕鬆找到答案。 –

+0

我會的。這是使用rootScope而不是作用域的問題嗎?我希望這些目標是全球性的。 – Jamal