我在react中的map函数中定位前一个元素时遇到了麻烦。当对象数组中的前一个元素不等于当前元素时,我想更改HTML中的ID标记。我没有成功地将这两个对象数组元素相互比较。我试过循环&映射和似乎不断得到未定义或NAN。
我不确定这是否是正确的方法来处理这样的事情。在网上也找不到什么能帮我的。谢谢你的帮助。
Array是如何设置的
Array(4) [ {…}, {…}, {…}, {…}]
1: Object { id: 2, productName: "Zirconium Flap Disc, 4 1/2 x 7/8 x 40 Grit, Pk 5", … }
2: Object { id: 3, productName: "Zirconium Flap Disc, 4 1/2 x 7/8 x 60 Grit, Pk 5", … }
3: Object { id: 4, productName: "Zirconium Flap Disc, 4 1/2 x 7/8 x 80 Grit, Pk 5", … }
4: Object { id: 5, productName: "Zirconium Flap Disc, 4 1/2 x 7/8 x 120 Grit, Pk 5", … }
尝试比较第一个对象数组中的Product Name和第二个对象数组中的productName,以此类推。1与2比较,2与3比较,3与4比较,以此类推。
1.
products.map((item,i)=>{
return(
<div className="pwrap" key={i} id={item[i].productName !== item[i-1].productName ? "line" : null}>
)
})
2.
const compare = ()=>{
for(let i=0; i < props.products.length; i++){
let current = props.products[i]
let pre = current[-1].productName
return pre
}
}
您在第一个代码片段中有一个错误,您试图索引单个项目而不是数组。应该是:
products.map((item,i)=>{
return(
<div className="pwrap" key={i} id={products[i].productName !== products[i-1].productName ? "line" : null}>
)
})
虽然你需要添加一些条件逻辑来确保你没有索引products[-1]