如何对对象数组进行排序,然后在JavaScript中映射?
我有一个产品对象的数组,我试图按价格(从低到高)和(从高到低)对它们进行排序,然后通过已排序的数组映射以显示产品 我可以按时间对它进行排序,这里所指的如何对对象数组进行排序,然后在JavaScript中映射?,javascript,reactjs,Javascript,Reactjs,我有一个产品对象的数组,我试图按价格(从低到高)和(从高到低)对它们进行排序,然后通过已排序的数组映射以显示产品 我可以按时间对它进行排序,这里所指的创建的时间是指产品创建的时间,更新的时间是指产品最后一次修改的时间 映射中的JSX,因为我使用的是reactjs const产品=[ {名称:“键盘”, id:“1”, 创建日期:1614年, 更新日期:1620, 价格:{ 原始:1, 格式为:“1.00”, } }, {名称:“鞋”, id:“2”, 创建日期:1655, 更新日期:166
创建的时间是指产品创建的时间,更新的时间是指产品最后一次修改的时间
映射中的JSX,因为我使用的是reactjs
const产品=[
{名称:“键盘”,
id:“1”,
创建日期:1614年,
更新日期:1620,
价格:{
原始:1,
格式为:“1.00”,
}
},
{名称:“鞋”,
id:“2”,
创建日期:1655,
更新日期:1660,
价格:{
原始:2,
格式:“2.00”,
}
},
{名称:“键盘”,
id:“1”,
创建日期:1670,
更新日期:1670,
价格:{
原始:1,
格式为:“1.00”,
}
}
]
const sortedProducts=//排序后的产品
返回(
sortedProducts.map(产品=>
{product.name}
{product.price.formatted}
))
您可以使用排序()
并比较price属性值
const产品=[{
名称:“键盘”,
id:“1”,
创建日期:1614年,
更新日期:1620,
价格:{
原始:1,
格式为:“1.00”,
}
},
{
名称:“鞋”,
id:“2”,
创建日期:1655,
更新日期:1660,
价格:{
原始:2,
格式:“2.00”,
}
},
{
名称:“键盘”,
id:“1”,
创建日期:1670,
更新日期:1670,
价格:{
原始:1,
格式为:“1.00”,
}
}
]
const sorted=products.sort((a,b)=>a.price.formatted.localeCompare(b.price.formatted))
控制台日志(已排序)代码>为了使其“可运行”,我将最后一部分从JSX改回JavaScript
const产品=[
{名称:“屏幕”,
id:“1”,
创建日期:1614年,
更新日期:1620,
价格:{
原始值:1.5,
格式:“1.50”,
}
},
{名称:“鞋”,
id:“2”,
创建日期:1655,
更新日期:1660,
价格:{
原始:2,
格式:“2.00”,
}
},
{名称:“键盘”,
id:“1”,
创建日期:1670,
更新日期:1670,
价格:{
原始:1,
格式为:“1.00”,
}
}
]
const sortedProducts=products.sort((a,b)=>a.created-b.created);
document.getElementById('here').innerHTML=sortedProducts.map(product=>
`
${product.name}
${product.price.formatted}
`
).join(“\n”)