【发布时间】:2021-06-23 17:05:25
【问题描述】:
我在我的 jsx 中使用它:
{item.result && item.result.length
? item.result.map((sale, i) => (sale.month === 1 ? <span key={i}>{sale.itemCount}</span> : 0))
: 0}
我正在尝试返回 sale.itemCount(如果存在)和 sale.month = 1。或者,只返回一个 0。
由于地图的影响,当应该显示 0 时,它会显示地图具有迭代的 0 的数量,例如000
当结果数组没有内容或结果数组中不存在匹配的 sale.month 时,如何只显示一个 0?该代码还需要在内联jsx中工作。
我怀疑地图不是正确的使用方法。
以下是结果数组的两个示例:
result = [
{
"itemCount": 2,
"month": 7
},
{
"itemCount": -1,
"month": 8
},
{
"itemCount": 0,
"month": 9
}
]
result = []
为了更好地理解完整代码,可以查看here
我已经尝试在 JSX 之外使用它并拥有这个功能:
const searchResultDec = (item) => {
if (item.result.length === 0) {
return <span>0</span>; // returns 0 as expected
}
if (item.result.length !== 0) {
item.result.forEach((result) => {
if (result.month !== 12) {
return <span>0</span>; // does not return anything
}
if (result.month === 12) {
console.log(result.itemCount); // returns 1 for three items
return <span>{result.itemCount}</span>; // does not return anything
}
});
}
};
但是,我在显示预期结果时再次遇到问题,我注意到“不返回任何内容”。
我正在尝试这样显示结果:
<td>
{searchResultDec(item)}
</td>
还有一个示例结果数组:
const result = [
{
"itemCount": 1,
"month": 8
},
{
"itemCount": 1,
"month": 12
}
]
【问题讨论】:
-
我不确定您要达到的目标。我认为我们这里有一个 XY 问题。请阅读:meta.stackexchange.com/questions/66377/what-is-the-xy-problem
-
好的,抱歉,我会更新我的问题。
-
因此您只想显示一个数字,该数字应该是一月(第 1 个月)的 itemCount 或数字零。对吗?
-
你一针见血,我每个月都会运行这个以显示结果表。
标签: javascript arrays reactjs jsx