javascript - 如何在 reactjs 中使对象长度中的未定义项等于 0?

标签 javascript json reactjs

我试图跟踪每篇文章的分数并显示它。但是,当对象中缺少 up 或 down 项时,我遇到了问题。

这是我所有投票的数据:

const votes = {
  "1": {
    "up": [
      "12345",
      "12346"
    ],
    "down": [
      "22456"
    ],
  },
  "2": {
    "up": [
      "12345",
      "12346"
    ],
    "down": [
      "22456",
      "25214",
      "23612"
    ]
  }
}

export default votes;

这就是我现在的处理方式,但这要求对象中必须同时存在 "up""down"

<div style={vote}>
    {votes[id] ? votes[id].up.length - votes[id].down.length : 0 }
</div>

所以在这种情况下,您只有 up 元素,我希望结果只是 up 的长度。向下也是同样的情况:

"3": {
   "up": [
      "12345",
      "22341"
   ]
} //this would output a score of 2

非常感谢任何帮助,谢谢!

最佳答案

最好的解决方案可能是在将对象添加到 votes 数组时始终使用空白的 updown 数组初始化对象.

如果那不可能,您将不得不在渲染过程中处理这种情况,例如像这样:

<div style={vote}>
    {votes[id] ? (votes[id].up || []).length - (votes[id].down || []).length : 0 }
</div>

关于javascript - 如何在 reactjs 中使对象长度中的未定义项等于 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37948353/

相关文章:

javascript - Angular 将 JSON 解析为指令

javascript - 在嵌套对象中查找键并替换其值 - Javascript

javascript - 如何在React中使用可变数据和实时图表实现最佳性能?

javascript - jquery $(window).height() 未实现

javascript - 如何获得旧/现代浏览器的 HTML 代码兼容性

javascript - React 路由到具有不同 URL 的同一组件

c++ - 从 nlohmann json 访问元素

javascript - Chrome 内存/垃圾收集问题

ReactJS基于props设置css类

javascript - react |在jsx中渲染html标签