如何创建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;
}
};
答
请检查此: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);
}
答
的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是你想要的。
应' “数据”:[{ “code_sent”: “等”},{ “code_sent”: “等”}]' – atmd
是的,这是我想要的。刚刚更新了我的代码 – pankaj
以上,现在它可以工作吗? – atmd