Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to push json into array?

I have an array

$scope.headArray=[
  'Online & Open Alarms',
  'Sites Overview',
  'Active Alarms',
  'Hidden Alarms'
];

and i have an object:

$scope.dashboardstatus = {
  hideDashboard1:true,  closeDashboard1:false,
  hideDashboard2:true,  closeDashboard2:true,
  hideDashboard3:false, closeDashboard3:false,
  hideDashboard4:false, closeDashboard4:false
}

and i want to create this table :

$scope.dashArray = [
 {Online & Open Alarms:{hideDashboard1:true,closeDashboard1:false}} ,
 {Sites Overview:      {hideDashboard2:true,closeDashboard2:true}},
  Actives Alarms:      {hideDashboard3:false,hideDashboard3:false},
 {Hidden Alarms:       {hideDashboard4:false,closeDashboard4}}
]

I tried this :

for (var i=0; i< $scope.headingArray.length; i++){         
    $scope.dashArray.push({$scope.headingArray[i],
   {$scope.dashboardstatus['closeDashboard'(i+1)],$scope.dashboardstatus['hideDashboard'+(i+1)]}}
);                                                                                                                                  
 }  

but not work !

How to push data into dashArray?

like image 758
devRena Avatar asked Jun 26 '26 23:06

devRena


1 Answers

You can do something like below in order to get final result:

let headArray=['Online & Open Alarms','Sites Overview','Active Alarms','Hidden Alarms'];
let dashboardstatus = {hideDashboard1:true,closeDashboard1:false,hideDashboard2:true,closeDashboard2:true,hideDashboard3:false,closeDashboard3:false,hideDashboard4:false,closeDashboard4:false}


let result = headArray.map((element, index) => { 
  let hideKey = `hideDashboard${index+1}`;
  let closeKey = `closeDashboard${index+1}`;
  return {[element]: {
    [hideKey]:dashboardstatus[hideKey],
    [closeKey]:dashboardstatus[closeKey]
  }}
})

console.log(result);
like image 101
Raeesaa Avatar answered Jun 28 '26 11:06

Raeesaa



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!