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

Par*_*ism 1 javascript json reactjs

我试图跟踪每篇文章中的分数并显示它.但是,当它缺少对象中的向上或向下项目时,我会遇到问题.

这是我所有投票的数据:

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

export default votes;
Run Code Online (Sandbox Code Playgroud)

这是我如何处理它的权利,但这种要求必须有两个"up""down"的对象.

<div style={vote}>
    {votes[id] ? votes[id].up.length - votes[id].down.length : 0 }
</div>
Run Code Online (Sandbox Code Playgroud)

因此,在此情况下,你必须up元素,我希望得到的结果是唯一的了长度.同样的情况下来:

"3": {
   "up": [
      "12345",
      "22341"
   ]
} //this would output a score of 2
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!

Tim*_*imo 5

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

如果那是不可能的,你将不得不在渲染过程中处理这种情况,例如:

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