我试图跟踪每篇文章的分数并显示它。但是,当对象中缺少 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
数组时始终使用空白的 up
和 down
数组初始化对象.
如果那不可能,您将不得不在渲染过程中处理这种情况,例如像这样:
<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/