我有多维数组,如下所示,它从我的仪表板.component.ts中的console.log(temp)显示:
[[],[],[],[],[],[],[],[],[],[],[{"user_id":"ismail.rahman.saanin@gmal.com","status":"Idle"},{"user_id":"lutfi.aldi.nugroho@gmil.com","status":"Overload"}]]
基本上,这种数组(内部包含空数组)很少见。但这令我不安,我无法解析数据。
我的Dashboard.component.ts
this.scheduleService.getShiftSchedule().subscribe((temp)=>{
this.api = temp;
//console.log(temp);
var ids = [['user_id', 1], ['status', 2]],
result = Object.keys(temp).map(o => ids.map(([key, id]) => ({ id, content: temp[o][key] })));
this.tablePresetData = result;
})
我的问题是,如果像我这种情况,多维数组中是否存在条件空数组,如何过滤数据?
需要帮助,谢谢...
答案 0 :(得分:0)
您可以检查length
是否大于0
。
let arr = [[],[],[],[],[],[],[],[],[],[],[{"user_id":"ismail.rahman.saanin@gmal.com","status":"Idle"},{"user_id":"lutfi.aldi.nugroho@gmil.com","status":"Overload"}]];
arr = arr.filter(item => Array.isArray(item) && item.length > 0)
console.log(arr);
答案 1 :(得分:0)
您可以使用.filter()
并返回元素.length
,其中0
的计算结果为假
let [res] = array.filter(({length}) => length)
或使用.flat()
let res = array.flat()