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

JavaScriptプロパティに基づいてオブジェクトを分離する


このようなオブジェクトがあるとします-

const obj = {
   0: { "time": 1, "day": 1, },
   1: { "time": 2, "day": 1, },
   2: { "time": 3, "day": 1, },
   3: { "time": 1, "day": 2, },
   4: { "time": 2, "day": 2, },
   5: { "time": 3, "day": 2, }
};

そのようなオブジェクトを1つ受け取り、すべてのキーと値のペアを、日キーの値が同じである別々のサブオブジェクトにグループ化するJavaScript関数を作成する必要があります。

出力

上記のオブジェクトの出力は-

である必要があります
const output = { '1':
{ '1': { time: 1, day: 1 },
'2': { time: 2, day: 1 },
'3': { time: 3, day: 1 } },
'2':
{ '1': { time: 1, day: 2 },
'2': { time: 2, day: 2 },
'3': { time: 3, day: 2 } }
}

このためのコードは-

になります
const obj = {
   0: { "time": 1, "day": 1, },
   1: { "time": 2, "day": 1, },
   2: { "time": 3, "day": 1, },
   3: { "time": 1, "day": 2, },
   4: { "time": 2, "day": 2, },
   5: { "time": 3, "day": 2, }
};
const groupObject = obj => {
   let res = {};
   res = Object.values(obj).reduce((acc, val) => {
      if(acc[val['day']] === undefined){
         acc[val['day']] ={};
      };
      acc[val['day']][val['time']] = val;
      return acc;
   },{});
   return res;
};
console.log(groupObject(obj));

出力

コンソールの出力-

{
   '1': {
      '1': { time: 1, day: 1 },
      '2': { time: 2, day: 1 },
      '3': { time: 3, day: 1 }
   },
   '2': {
      '1': { time: 1, day: 2 },
      '2': { time: 2, day: 2 },
      '3': { time: 3, day: 2 }
   }
}

  1. JavaScriptの共有プロパティ

    プロパティは、オブジェクトのプロトタイププロパティにアタッチすることで共有できます。これらのプロパティは、オブジェクトのすべてのインスタンス間で共有されます。 以下は、JavaScriptでプロパティを共有するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, init

  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</title> <style>