Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで月ごとにデータをグループ化する


このような一部のユーザーに関するデータがあるとします-

const obj = {
   "Mary": {
      "2016-1": 2,
      "2016-5": 1,
      "2016-3": 1
   },
   "Paul": {
      "2016-1": 1,
      "2016-3": 1
   },
   "moth": {
      "2016-1": 2,
   "2016-5": 1
   }
};

そのようなオブジェクトを1つ取り込むJavaScript関数を作成する必要があります。この関数は、このユーザーデータをオブジェクトにグループ化する必要があります。各一意の日付はオブジェクトによって表されます。

このためのコードは-

になります
const obj = {
   "Mary": {
      "2016-1": 2,
      "2016-5": 1,
      "2016-3": 1
   },
   "Paul": {
      "2016-1": 1,
      "2016-3": 1
   },
   "moth": {
      "2016-1": 2,
      "2016-5": 1
   }
};
const groupByDate = (obj = {}) => {
   const names = Object.keys(obj);
   const res = {};
   for(let i = 0; i < names.length; i++){
      const name = names[i];
      const dates = Object.keys(obj[name]);
      for(let j = 0; j < dates.length; j++){
         const date = dates[j];
         if(!res.hasOwnProperty(date)){
            res[date] = {
               names: [name],
               values: [obj[name][date]]
            }
         }
         else{
            res[date].names.push(name);
            res[date].values.push(obj[name][date]);
         };
      };
   };
   return res;
};
console.log(groupByDate(obj));

出力

そして、コンソールの出力は-

になります
{
   '2016-1': { names: [ 'Mary', 'Paul', 'moth' ], values: [ 2, 1, 2 ] },
   '2016-5': { names: [ 'Mary', 'moth' ], values: [ 1, 1 ] },
   '2016-3': { names: [ 'Mary', 'Paul' ], values: [ 1, 1 ] }
}

  1. Javascriptのハッシュテーブルデータ構造

    ハッシュテーブルは、データを関連付けて格納するデータ構造です。ハッシュテーブルでは、データは配列形式で格納され、各データ値には独自のインデックス値があります。目的のデータのインデックスがわかっている場合、データへのアクセスは非常に高速になります。 したがって、データのサイズに関係なく、挿入および検索操作が非常に高速なデータ構造になります。ハッシュテーブルは、ストレージメディアとして配列を使用し、ハッシュ手法を使用して、要素が挿入される場所または要素が配置される場所のインデックスを生成します。 ハッシュ ハッシュは、キー値の範囲を配列のインデックスの範囲に変換する手法です。モジュロ演算子を使用

  2. JavaScriptのグループ化演算子について説明します。

    グループ化演算子は、式の評価の優先順位を管理するために使用されます。 以下は、JavaScriptのグループ化演算子のコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document&l