Есть ли способ отобразить 0, когда массив равен [""]? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть объект, который я повторяю, используя Object.keys (myData) .map

const data = Object.keys(myData);

const output = data.map(key => (

{myData[key].bad.length} //correctly shows 2 for "bad" on "Bravo", but will show 1 for "bad" on "Charlie" when the array is[""]

));

Data

{
  "Alpha": {
    "bad": ["0001-00"],
    "good": ["0002-00", "0003-00", "0004-00"],
    "percent": 10,
    "optionOne": true,
    "optionTwo": false
  },
  "Bravo": {
    "bad": ["0002-11", "0003-01"],
    "good": ["0002-14", "0005-06"],
    "percent": 75,
    "optionOne": true,
    "optionTwo": true
  },
  "Charlie": {
    "bad": [""],
    "good": ["0131-00", "0007-13", "0001-92"],
    "percent": 25,
    "optionOne": true,
    "optionTwo": false
  }
}

У меня есть это, чтобы отобразить, сколько элементов в массиве, но когда их массив равен [""], он будет отображать 1. Любое предложение о том, как я смогу отобразить 0, когда есть массив [""]?

У меня есть весь мой код здесь работает: https://repl.it/repls/DapperHungryFraction

1 Ответ

2 голосов
/ 06 мая 2020

Вы можете фильтровать массив перед измерением длины.

Это отфильтровывает пустые строки:

myData[key].bad.filter(x=> x !== "").length;
...