Разбор и игнорирование нулевых данных внутри многомерного массива на Angular 6 - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть многомерный массив, который показан из console.log (temp) в моем dashboard.component.ts примерно так:

[[],[],[],[],[],[],[],[],[],[],[{"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;
})

Мой вопрос: как фильтровать данные, если в многомерном массиве есть условный нулевой массив, напримерв моем случае?

Нужна помощь, спасибо, ребята ...

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Вы можете использовать .filter() и вернуть элемент .length, где 0 оценивается как ложное

let [res] = array.filter(({length}) => length)

или использовать .flat()

let res = array.flat()
0 голосов
/ 12 февраля 2019

Вы можете проверить, больше ли 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);
...