首页 > 解决方案 > 当数组为[“”]时,有什么方法可以显示0?

问题描述

我有一个使用 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[""]

));

数据

{
  "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

标签: javascriptarraysreactjsjavascript-objectsnext.js

解决方案


您可以在获取长度之前过滤数组。

这会过滤掉空字符串:

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

推荐阅读