-1

I am Using Alasql to read excel data. The issue is the array might contains all key with null value, My question is: How to delete rows or records, if all key has null value?

Below is my array data:

[
0:{Name:"ABC1",No:5,BalanceDue:5000,Notes1:null,Notes2:null,CurrencyId:"2",Date:"06/01/2018"}
1:{Name:"ABC2",No:6,BalanceDue:6000,Notes1:null,Notes2:null,CurrencyId:"3",Date:"05/02/2018"}
2:{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null}
3:{Name:"ABC3",No:7,BalanceDue:7700,Notes1:null,Notes2:null,CurrencyId:"8",Date:"15/02/2018"}
4:{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null}
5:{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null}
6:{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null}
]

Expected result:

[
0:{Name:"ABC1",No:5,BalanceDue:5000,Notes1:null,Notes2:null,CurrencyId:"2",Date:"06/01/2018"}
1:{Name:"ABC2",No:6,BalanceDue:6000,Notes1:null,Notes2:null,CurrencyId:"3",Date:"05/02/2018"} 
2:{Name:"ABC3",No:7,BalanceDue:7700,Notes1:null,Notes2:null,CurrencyId:"8",Date:"15/02/2018"} 
]
mangesh
  • 355
  • 4
  • 13

1 Answers1

2

You can use array#filter with array#every to filter out object with all the values as null.

var data = [{Name:"ABC1",No:5,BalanceDue:5000,Notes1:null,Notes2:null,CurrencyId:"2",Date:"06/01/2018"},{Name:"ABC2",No:6,BalanceDue:6000,Notes1:null,Notes2:null,CurrencyId:"3",Date:"05/02/2018"},{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null},{Name:"ABC3",No:7,BalanceDue:7700,Notes1:null,Notes2:null,CurrencyId:"8",Date:"15/02/2018"},{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null},{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null},{Name:null,No:null,BalanceDue:null,Notes1:null,Notes2:null,CurrencyId:null,Date:null}],
  result = data.filter(o => !Object.keys(o).every(k => !o[k]));
console.log(result);
Hassan Imam
  • 21,956
  • 5
  • 41
  • 51