how to pull data with one common field and make nested json in javascript
I have an array like this :
var arr = [{
    "date" : "2021-07-01",
    "Subject" : "Math",
    "index" : 1
},{
    "date" : "2021-07-02",
    "Subject" : "Social",
    "index" : 2
},{
    "date" : "2021-07-01",
    "Subject" : "Science",
    "index" : 3
},{
    "date" : "2021-07-02",
    "Subject" : "Economics",
    "index" : 4
},{
    "date" : "2021-07-01",
    "Subject" : "English",
    "index" : 5
},{
    "date" : "2021-07-02",
    "Subject" : "Computer",
    "index" : 6
}]
In Result I want an array like that
arr = [{
    date: "2021-07-01",
    data : [{subject : "Math", "index" : 1},{subject : "Science", "index" : 3},{subject : "English", "index" : 5}]
},{
    date: "2021-07-02",
    data : [{subject : "Social", "index" : 2},{subject : "Economics", "index" : 4},{subject : "Computer", "index" : 6}]
}]
Here is what I am trying
var checkData = [];
var resultArr;
for(var i=0; i<arr.length; i++){
    if(checkData.indexOf(arr[0].date) !== -1)  {
        // not getting data
    }else{
        checkData.push(arr[0].date);
        resultArr.date = arr[0].date;
        resultArr.data = {"index" : arr[0].index, "subject" : arr[0].subject};
        
    }
}
Any help how can I achive this.
 
     
    