は私が私の出力には、このチェックキーの値が存在し、
Array1 = [
0:[{name:A,count:2,hours:3},{name:B,count:3,hours:3},{name:C,count:2,hours:4}]
1:[{name:A,count:3,hours:4},{name:B,count:3,hours:3},{name:C,count:2,hours:2}]
2:[{name:A,count:3,hours:1},{name:B,count:3,hours:4},{name:C,count:2,hours:5},{name:D,count:2,hours:3}]
];
と
Array2 = ['A','B','C','D'];
のように私のWebサービスからの応答配列があるとJavaScriptで値を持つキーを押さない場合は、私が必要な場合は、 24時間確認することができます。しかし、わかりやすくするために、今は5時間かかります.Array1の各サブアレイは1人のユーザーに属しています。今、私は時間と活動で配列をグループ化する必要があります。私はキーを各時間の名前の合計数として名前と価値として作る必要があることを意味します。
、出力は
私はグループに値としてキーと合計カウントなど時間と名前を持つ私の配列をしてみてくださいangular.forEach(Array1 , function(array){ //angularjs foreach
array.forEach(function(a){
obj[a.hours] = obj[a.hours]||[0];
if(obj[a.hours].hasOwnProperty(a.name)){
obj[a.hours][a.name] = parseInt(obj[a.hours][a.name]) + parseInt(a.count);
}else{
obj[a.hours][a.name] = parseInt(a.count);
}
obj[a.hours]['hours'] = a.hours;
});
});
以下この
var output = [
{hours:1, A:3, B:0, C:0, D:0},
{hours:2, A:0, B:0, C:2, D:0},
{hours:3, A:2, B:6, C:0, D:2},
{hours:4, A:3, B:3, C:2, D:0},
{hours:5, A:0, B:0, C:2, D:0},
];
そして、私の試みのように見える必要があります。より多くの私は何をしようと
var startHour = 1;
var endHours = 5;
var newData = []; //@TODO
newData.push(obj); //@TODO
for(i= startDate; i < endDate; i++) {
var found = newData.some(function(el){
//el.forEach(function(a){
$.each(el, function(key, value) {
if(value.hours){
return value.hours === i;
}
});
});
if(!found){
console.log(i + "not found");
newData.push([{'hours':i}]);
}
}
console.log(newData);
あるしかし、私はないfound.Asで午前たびに私の出力は、私は、キーと値のペアの名前を押して終了していない場合は0をカウントする必要があります。しかし、まず、私は時間がない場合には、ほんの数時間をかけようとします。誰も私が間違っていたことを私に示唆できますか?私はバックエンドのプログラマーですので、私はJavaScriptの知識がありません。
ありがとうございます。
ARRAY1はオブジェクトではなく、私は私のミスについて謝罪配列 – yBrodsky
です。私は私のコンソールからそれをコピーしようとします。 – Dev
戻り値はjqueryルーチンに戻ります...そして、すべての要素をループする関数のすべての要素をループしています(いくつか)does notはそれほど意味をなさないでしょう –