Javascript 对象排序数组
我开发了电子商务应用程序 我有一份产品清单 这是我的阵列:Javascript 对象排序数组,javascript,Javascript,我开发了电子商务应用程序 我有一份产品清单 这是我的阵列: [ { Desc:Commodo adipisicing officia non excepteur officia nostrud, details:{ "P_TITLE" : "Martina", "P_TYPE" : "simple", "P_DESCRIPTION" : "Commodo adipisicing offi
[
{
Desc:Commodo adipisicing officia non excepteur officia nostrud,
details:{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Commodo adipisicing officia non excepteur officia nostrud. Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 161.0,
}
},
{
Desc:Laborum cupidatat dolor tempor cillum incididunt,
details:{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Laborum cupidatat dolor tempor cillum incididunt in veniam nisi dolore.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 80.0,
}
},
{
Desc:Anim ad et sunt aliquip proident,
details:{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Anim ad et sunt aliquip proident fugiat deserunt.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 150.0,
}
},
{
Desc:Eiusmod aliquip eu aute elit eiusmod proident,
details:{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Eiusmod aliquip eu aute elit eiusmod proident.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 130.0,
}
}
]
我需要根据价格\u销售额
进行排序
Low to High and high to low.
我试过这个:
var a=this.product.sort(function(a, b){
console.log("SORT");
return a.details.PRICE_SALE-b.details.PRICE_SALE;
})
但是它不起作用。如果您在
Desc
上解决了报价问题,那么您的代码工作正常。请注意,sort()
方法对数组进行适当排序。它还返回已排序的数组,但不要因此而误以为它是数组的副本,并对其进行排序(例如,.sort()
不像array.slice()
那样将数组全部或部分复制并返回副本)
var产品=[
{
描述:“非例外的官方商品”,
详情:{
“P_TITLE”:“Martina”,
“P_类型”:“简单”,
“P_说明”:“非例外的官方共同声明。欧盟将对美国精英无异议。”,
“P_股票”:100.0,
“常规价格”:194.0,
“价格销售”:161.0,
}
},
{
描述:“临时纤毛的产房”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_描述”:“veniam nisi dolore的临时劳工。欧盟对精英无任何贡献。”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:80.0,
}
},
{
描述:“动物和动物必须是一个骄傲的人”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_DESCRIPTION”:“动物和动物都必须有一个自以为是的身份,因为它是一个无价值的人。”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:150.0,
}
},
{
描述:“Eiusmod aliquip eu aute elit Eiusmod proident”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_说明”:“Eiusmod aliquip eu aute elit Eiusmod proident.eu voluptate amet elit nulla.”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:130.0,
}
}
];
产品.分类(功能(a,b){
返回a.details.PRICE\u SALE-b.details.PRICE\u SALE;
});
log(JSON.stringify(products,null,4))代码>如果您修复了Desc
上的报价问题,则代码工作正常。请注意,sort()
方法对数组进行适当排序。它还返回已排序的数组,但不要因此而误以为它是数组的副本,并对其进行排序(例如,.sort()
不像array.slice()
那样将数组全部或部分复制并返回副本)
var产品=[
{
描述:“非例外的官方商品”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_说明”:“非例外的官方共同声明。欧盟将对美国精英无异议。”,
“P_股票”:100.0,
“常规价格”:194.0,
“价格销售”:161.0,
}
},
{
描述:“临时纤毛的产房”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_描述”:“veniam nisi dolore的临时劳工。欧盟对精英无任何贡献。”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:80.0,
}
},
{
描述:“动物和动物必须是一个骄傲的人”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_DESCRIPTION”:“动物和动物都必须有一个自以为是的身份,因为它是一个无价值的人。”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:150.0,
}
},
{
描述:“Eiusmod aliquip eu aute elit Eiusmod proident”,
详情:{
“P_头衔”:“玛蒂娜”,
“P_类型”:“简单”,
“P_说明”:“Eiusmod aliquip eu aute elit Eiusmod proident.eu voluptate amet elit nulla.”,
“P_股票”:100.0,
“常规价格”:194.0,
“销售价格”:130.0,
}
}
];
产品.分类(功能(a,b){
返回a.details.PRICE\u SALE-b.details.PRICE\u SALE;
});
log(JSON.stringify(products,null,4))代码>将数组元素转换为对象:
var arr = [
{
"Desc" : "Commodo adipisicing officia non excepteur officia nostrud",
"details" :{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Commodo adipisicing officia non excepteur officia nostrud. Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 161.0,
}
},
{
"Desc": "Laborum cupidatat dolor tempor cillum incididunt",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Laborum cupidatat dolor tempor cillum incididunt in veniam nisi dolore.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 80.0,
}
},
{
"Desc" : "Anim ad et sunt aliquip proident",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Anim ad et sunt aliquip proident fugiat deserunt.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 150.0,
}
},
{
"Desc":"Eiusmod aliquip eu aute elit eiusmod proident",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Eiusmod aliquip eu aute elit eiusmod proident.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 130.0,
}
}
];
见结果:
var a = arr.sort(function(a, b){
return a.details.PRICE_SALE - b.details.PRICE_SALE;
})
a.forEach(function(ele) {
console.log(ele.details.PRICE_SALE); // 80, 130, 150, 161
})
将数组元素转换为对象:
var arr = [
{
"Desc" : "Commodo adipisicing officia non excepteur officia nostrud",
"details" :{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Commodo adipisicing officia non excepteur officia nostrud. Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 161.0,
}
},
{
"Desc": "Laborum cupidatat dolor tempor cillum incididunt",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Laborum cupidatat dolor tempor cillum incididunt in veniam nisi dolore.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 80.0,
}
},
{
"Desc" : "Anim ad et sunt aliquip proident",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Anim ad et sunt aliquip proident fugiat deserunt.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 150.0,
}
},
{
"Desc":"Eiusmod aliquip eu aute elit eiusmod proident",
"details":{
"P_TITLE" : "Martina",
"P_TYPE" : "simple",
"P_DESCRIPTION" : "Eiusmod aliquip eu aute elit eiusmod proident.Eu voluptate amet elit nulla.",
"P_STOCK" : 100.0,
"PRICE_REGULAR" : 194.0,
"PRICE_SALE" : 130.0,
}
}
];
见结果:
var a = arr.sort(function(a, b){
return a.details.PRICE_SALE - b.details.PRICE_SALE;
})
a.forEach(function(ele) {
console.log(ele.details.PRICE_SALE); // 80, 130, 150, 161
})
但它不是以什么方式工作的?运行时错误?意外的结果?顺便说一句,应该引用Desc
属性的值。您应该研究这个问题:谢谢您的回复。不,我没有收到错误消息。但不显示顺序。我需要排序到从低到高和从高到低。但它以什么方式不起作用?运行时错误?意外的结果?顺便说一下,应该引用Desc
属性的值。您应该研究这个问题:谢谢您的回复。不,我没有收到错误消息。但不显示顺序。我需要排序到从低到高和从高到低。