如何创建angularjs或JavaScript

问题描述:

下面我有数组,我想创建阵列的另一个数组对象的数组。下面是我的数组如何创建angularjs或JavaScript

$scope.data2 = 
       [  
        {"dt":"07 Jul 2015","avgdelay":"10","code_sent_time":"07 Jul 2015 12:30 PM","reply_received_time":"07 Jul 2015 12:40 PM","time_diff":10}, 
        {"dt":"07 Jul 2015","avgdelay":"10","code_sent_time":"07 Jul 2015 02:10 AM","reply_received_time":"07 Jul 2015 02:30 AM","time_diff":20 }, 
        {"dt":"07 Jul 2015","avgdelay":"10","code_sent_time":"07 Jul 2015 03:10 AM","reply_received_time":"07 Jul 2015 03:15 AM","time_diff":5 }, 
        {"dt":"07 Jul 2015","avgdelay":"10","code_sent_time":"07 Jul 2015 04:45 AM","reply_received_time":"07 Jul 2015 05:00 AM","time_diff":15 }, 
        {"dt":"08 Jul 2015","avgdelay":"20","code_sent_time":"08 Jul 2015 12:30 PM","reply_received_time":"08 Jul 2015 12:40 PM","time_diff":35}, 
        {"dt":"08 Jul 2015","avgdelay":"20","code_sent_time":"08 Jul 2015 02:10 AM","reply_received_time":"08 Jul 2015 02:30 AM","time_diff":42 }, 
        {"dt":"08 Jul 2015","avgdelay":"20","code_sent_time":"08 Jul 2015 03:10 AM","reply_received_time":"08 Jul 2015 03:15 AM","time_diff":5 }, 
        {"dt":"08 Jul 2015","avgdelay":"20","code_sent_time":"08 Jul 2015 04:45 AM","reply_received_time":"08 Jul 2015 05:00 AM","time_diff":5 }, 
        {"dt":"09 Jul 2015","avgdelay":"30","code_sent_time":"09 Jul 2015 12:30 PM","reply_received_time":"09 Jul 2015 12:40 PM","time_diff":1}, 
        {"dt":"09 Jul 2015","avgdelay":"30","code_sent_time":"09 Jul 2015 02:10 AM","reply_received_time":"09 Jul 2015 02:30 AM","time_diff":28}, 
        {"dt":"09 Jul 2015","avgdelay":"30","code_sent_time":"09 Jul 2015 03:10 AM","reply_received_time":"09 Jul 2015 03:15 AM","time_diff":12}, 
        {"dt":"09 Jul 2015","avgdelay":"30","code_sent_time":"09 Jul 2015 04:45 AM","reply_received_time":"09 Jul 2015 05:00 AM","time_diff":17}, 
        {"dt":"10 Jul 2015","avgdelay":"10","code_sent_time":"10 Jul 2015 12:30 PM","reply_received_time":"10 Jul 2015 12:40 PM","time_diff":19},   
        {"dt":"10 Jul 2015","avgdelay":"10","code_sent_time":"10 Jul 2015 02:10 AM","reply_received_time":"10 Jul 2015 02:30 AM","time_diff":21}, 
        {"dt":"10 Jul 2015","avgdelay":"10","code_sent_time":"10 Jul 2015 03:10 AM","reply_received_time":"10 Jul 2015 03:15 AM","time_diff":15}, 
        {"dt":"10 Jul 2015","avgdelay":"10","code_sent_time":"10 Jul 2015 04:45 AM","reply_received_time":"10 Jul 2015 05:00 AM","time_diff":15}, 
        {"dt":"11 Jul 2015","avgdelay":"10", "code_sent_time":"11 Jul 2015 12:30 PM","reply_received_time":"11 Jul 2015 12:40 PM","time_diff":39},  
        {"dt":"11 Jul 2015","avgdelay":"10", "code_sent_time":"11 Jul 2015 02:10 AM","reply_received_time":"11 Jul 2015 02:30 AM","time_diff":7}, 
        {"dt":"11 Jul 2015","avgdelay":"10", "code_sent_time":"11 Jul 2015 03:10 AM","reply_received_time":"11 Jul 2015 03:15 AM","time_diff":9}, 
        {"dt":"11 Jul 2015","avgdelay":"10", "code_sent_time":"11 Jul 2015 04:45 AM","reply_received_time":"11 Jul 2015 05:00 AM","time_diff":22}, 
        {"dt":"12 Jul 2015","avgdelay":"10","code_sent_time":"12 Jul 2015 12:30 PM","reply_received_time":"12 Jul 2015 12:40 PM","time_diff":32},  
        {"dt":"12 Jul 2015","avgdelay":"10","code_sent_time":"12 Jul 2015 02:10 AM","reply_received_time":"12 Jul 2015 02:30 AM","time_diff":11}, 
        {"dt":"12 Jul 2015","avgdelay":"10","code_sent_time":"12 Jul 2015 03:10 AM","reply_received_time":"12 Jul 2015 03:15 AM","time_diff":52}, 
        {"dt":"12 Jul 2015","avgdelay":"10","code_sent_time":"12 Jul 2015 04:45 AM","reply_received_time":"12 Jul 2015 05:00 AM","time_diff":37} 
       ]; 

我的合成阵列会是什么样子,

$scope.resarray = [  
        {"dt":"07 Jul 2015","avgdelay":"10","data" : 
              [ 
              {"code_sent_time":"07 Jul 2015 12:30 PM","reply_received_time":"07 Jul 2015 12:40 PM","time_diff":10}, 
              {"code_sent_time":"07 Jul 2015 02:10 AM","reply_received_time":"07 Jul 2015 02:30 AM","time_diff":20 }, 
              {"code_sent_time":"07 Jul 2015 03:10 AM","reply_received_time":"07 Jul 2015 03:15 AM","time_diff":5 }, 
              {"code_sent_time":"07 Jul 2015 04:45 AM","reply_received_time":"07 Jul 2015 05:00 AM","time_diff":15 } 
              ] 
        }, 
        {"dt":"08 Jul 2015","avgdelay":"20","data": 
             [ 
              {"code_sent_time":"08 Jul 2015 12:30 PM","reply_received_time":"08 Jul 2015 12:40 PM","time_diff":35}, 
              {"code_sent_time":"08 Jul 2015 02:10 AM","reply_received_time":"08 Jul 2015 02:30 AM","time_diff":42 }, 
              {"code_sent_time":"08 Jul 2015 03:10 AM","reply_received_time":"08 Jul 2015 03:15 AM","time_diff":5 }, 
              {"code_sent_time":"08 Jul 2015 04:45 AM","reply_received_time":"08 Jul 2015 05:00 AM","time_diff":5 } 
             ] 
        }, 
        {"dt":"09 Jul 2015","avgdelay":"30","data": 
             [ 
              {"code_sent_time":"09 Jul 2015 12:30 PM","reply_received_time":"09 Jul 2015 12:40 PM","time_diff":1}, 
              {"code_sent_time":"09 Jul 2015 02:10 AM","reply_received_time":"09 Jul 2015 02:30 AM","time_diff":28}, 
              {"code_sent_time":"09 Jul 2015 03:10 AM","reply_received_time":"09 Jul 2015 03:15 AM","time_diff":12}, 
              {"code_sent_time":"09 Jul 2015 04:45 AM","reply_received_time":"09 Jul 2015 05:00 AM","time_diff":17}, 
             ] 
        } 
       ];      

每个日期有4行,我想产生的阵列,每一个日期都为全部4个细节那天另一个数组。 我尝试了各种选择,但没有成功。请帮我解决这个问题。

下面是我已经试过了,

$scope.genarr = function() 
{ 
var data2length = $scope.data2.length; 
var firstdate = $scope.data2[0].dt; 
var sourcecheckdate = firstdate.split(' '); 
$scope.resarray = {}; 
var dtcheckflag = false; 
var insertrow = null; 
var j = 0; 
var k = 0; 
var z = 1; 
var data=[]; 
for (var i=0;i< data2length;i++) 
{ 
    var targetcheckdate = $scope.data2[i].code_sent_time.split(' '); 

    if (targetcheckdate[0] === sourcecheckdate[0] && targetcheckdate[1] === sourcecheckdate[1] && targetcheckdate[2] === sourcecheckdate[2]) 
    { 
     firstdate = $scope.data2[i].dt; 
     sourcecheckdate = firstdate.split(' '); 
    } 
    else 
    { 
     firstdate = $scope.data2[i].dt; 
     sourcecheckdate = firstdate.split(' '); 
    } 

     if (insertrow != firstdate) 
     { 
      k = 0; 
      $scope.resarray[j] = {"dt":$scope.data2[i].dt,"avgdelay":$scope.data2[i].avgdelay,"data":[]}; 
      //$scope.resarray[j].data[k] = null; 
      $scope.resarray[j].data[k]= {"code_sent_time":$scope.data2[i].code_sent_time , "reply_received_time" :$scope.data2[i].reply_received_time , "time_diff" : $scope.data2[i].time_diff}; 
      insertrow = firstdate; 
      j+=1; 
     } 
     else 
     { 
      $scope.resarray[j].data[k]= {"code_sent_time":$scope.data2[i].code_sent_time , "reply_received_time" :$scope.data2[i].reply_received_time , "time_diff" : $scope.data2[i].time_diff};    
     } 

     k +=1; 
} 
}; 
+0

应' “数据”:[{ “code_sent”: “等”},{ “code_sent”: “等”}]' – atmd

+0

是的,这是我想要的。刚刚更新了我的代码 – pankaj

+0

以上,现在它可以工作吗? – atmd

请检查此:http://plnkr.co/edit/BOYqNcdpi8uGKRraDAw1?p=preview

控制器:

$scope.data = []; //New formated array of data   
for(var k = 0; k < $scope.data2.length; k++) { 
    var arrayData = {}; //Temporary object 
    arrayData.dt = $scope.data2[k].dt; 
    arrayData.avgdelay = $scope.data2[k].avgdelay; 
    arrayData.data = []; 
    for(var j = 0; j<4; j++,k++) { 
     if (arrayData.dt == $scope.data2[k].dt) { 
     var tempObj = {'code_sent_time': $scope.data2[k].code_sent_time, 
     'reply_received_time':$scope.data2[k].reply_received_time, 
     'time_diff':$scope.data2[k].time_diff 
     }; 
     arrayData.data.push(tempObj); 
     } 
    } 

    $scope.data.push(arrayData); 
} 
+0

感谢你好。据工作时,我有4行每个日期。如果我有行的任意数目每天那么如何计算“J”值? – pankaj

+0

对上述代码进行了一些更改,它对我有用。 – pankaj

data领域目前是一个对象,但它需要一个数组。

{"dt":"07 Jul 2015","avgdelay":"10","data" : 
    { 
    {"code_sent_time":"07 Jul 2015 12:30 PM"}, 
    {"code_sent_time":"07 Jul 2015 02:10 AM"}, 
    {"code_sent_time":"07 Jul 2015 03:10 AM"}, 
    {"code_sent_time":"07 Jul 2015 04:45 AM"} 
    } 
}, 

应该

{"dt":"07 Jul 2015","avgdelay":"10","data" : 
    [ 
    {"code_sent_time":"07 Jul 2015 12:30 PM"}, 
    {"code_sent_time":"07 Jul 2015 02:10 AM"}, 
    {"code_sent_time":"07 Jul 2015 03:10 AM"}, 
    {"code_sent_time":"07 Jul 2015 04:45 AM"} 
    ] 
}, 

{}创建和对象,[]创建和阵列

+0

我已经添加了我的角度js功能代码上面。不知道我错过了什么。 :( – pankaj

var newData = []; 
var dateDict = {}; 

angular.forEach(data2,function(d){ 
var temp = {};  
if(dateDict[d.dt]){ 
    dateDict[d.dt].push(d); 
    } 
else{ 
dateDict[d.dt] = []; 
dateDict[d.dt].push(d); 
} 
}); 

angular.forEach(dateDict,function(val,key){ 
var obj = { 
"dt":key, 
"avgdelay":val[0].avgdelay, 
"data": val 
}; 
    newData.push(obj); 
}); 

我认为这将解决您的问题。 data2是旧数据,newData是你想要的。

+0

它的工作,但只有一个问题。newData.data有另一个对象“d”,它有详细的数据 – pankaj

+0

一个额外的大括号被错误添加,现在我已经更新了代码。现在它将会工作 – Devjit

+0

很不错的方法Devjit。学到了新的东西angular.foreach.Thank你。 – pankaj