Javascript 使用jquery按价格对对象排序 我的要求是根据价格对物品进行分类。根据现金,物品应该进行分类
下面是我安慰和得到的样本数据,并显示在下面Javascript 使用jquery按价格对对象排序 我的要求是根据价格对物品进行分类。根据现金,物品应该进行分类,javascript,php,jquery,Javascript,Php,Jquery,下面是我安慰和得到的样本数据,并显示在下面 通过安慰满天。排序(测试);我得到了以下数据 输出应该是这样的 1: Object id: 1 test: Array[1] 0: Object fuldata: "xyz" pat: "xyz" img: "6E.gif" nos: "0 - stop" show_price: 1 sour: "BLR" tickettype: "e" __proto__: Object length: 1 __proto__: Array[0] price:
输出应该是这样的
1: Object
id: 1
test: Array[1]
0: Object
fuldata: "xyz"
pat: "xyz"
img: "6E.gif"
nos: "0 - stop"
show_price: 1
sour: "BLR"
tickettype: "e"
__proto__: Object
length: 1
__proto__: Array[0]
price: Array[1]
0: Object
cash: 2299
total_surcharge: 885
total_tax: 1414
__proto__: Object
length: 1
2: Object
id: 1
test: Array[1]
0: Object
fuldata: "xyz"
pat: "xyz"
img: "6E.gif"
nos: "0 - stop"
show_price: 1
sour: "BLR"
tickettype: "e"
__proto__: Object
length: 1
__proto__: Array[0]
price: Array[1]
0: Object
cash: 3399
total_surcharge: 885
total_tax: 1414
__proto__: Object
length: 1
0: Object
id: 1
test: Array[1]
0: Object
fuldata: "xyz"
pat: "xyz"
img: "6E.gif"
nos: "0 - stop"
show_price: 1
sour: "BLR"
tickettype: "e"
__proto__: Object
length: 1
__proto__: Array[0]
price: Array[1]
0: Object
cash: 44499
total_surcharge: 885
total_tax: 1414
__proto__: Object
length: 1
对于此类操作,您可以尝试使用lo dash库。()
请查看文档以了解更多信息。SortBy函数应该可以解决您的问题Javascript不能确保对象的顺序,因此这里不可能直接对对象进行排序。请参阅以更好地了解原因和相关文档。在您的情况下,我将重新创建一个
键值
对列表,将键
作为对象的现金
属性,然后直接修改排序
函数对该数组进行排序
假设您的初始对象数组名为list1
,则可以执行以下操作:
For simplicity:
list2 = [];
for (i=0;i<list1.length;i++){ list2.push({'key': list1[i].price.cash,'val' : list1[i]});}
//list2 would be populated as :
list2 = [{key:44499, val: Object},..];
//To sort the list2 based on ascending order of cash
list2 = list2.sort(function (a, b) {
return a.key - b.key;
});
//In your case,you could accomplish this directly as well doing just :
list1.sort(function (a, b) {
return a.cash.price- b.cash.price;
});
为简单起见:
清单2=[];
对于(i=0;i而言,也可以这样做:
var myObject= [
{ Cash: 323, Text: "abc" },
{ Cash: 4567, Text: "zxc" },
{ Cash: 83456, Text: "fgg" },
{ Cash: 72, Text: "hjk" },
{ Cash: 1, Text: "tyu" },
{ Cash: 543, Text: "bgt" },
{ Cash: 245, Text: "ljj" },
{ Cash: 68798, Text: "mnu" }
];
// Sort ascending
myObject.sort(function (a,b){
if (a.Cash < b.Cash)
return -1;
if (a.Cash> b.Cash)
return 1;
return 0;
});
// Sort descending
myObject.sort(function (a,b){
if (a.Cash < b.Cash)
return 1;
if (a.Cash> b.Cash)
return -1;
return 0;
});
var myObject=[
{现金:323,文本:“abc”},
{现金:4567,文本:“zxc”},
{现金:83456,文本:“fgg”},
{现金:72,文本:“hjk”},
{现金:1,文本:“tyu”},
{现金:543,文本:“bgt”},
{现金:245,文本:“ljj”},
{现金:68798,文本:“mnu”}
];
//升序排序
myObject.sort(函数(a,b){
如果(a.现金b.现金)
返回1;
返回0;
});
//降序排序
myObject.sort(函数(a,b){
如果(a.现金b.现金)
返回-1;
返回0;
});
只需选择所需对象的“Cash”属性并对其进行排序。
希望有帮助。什么是test
在full_sky.sort(test)
api的响应以json的形式获取,将数据分配给变量并推送到full_sky.push(test);
var myObject= [
{ Cash: 323, Text: "abc" },
{ Cash: 4567, Text: "zxc" },
{ Cash: 83456, Text: "fgg" },
{ Cash: 72, Text: "hjk" },
{ Cash: 1, Text: "tyu" },
{ Cash: 543, Text: "bgt" },
{ Cash: 245, Text: "ljj" },
{ Cash: 68798, Text: "mnu" }
];
// Sort ascending
myObject.sort(function (a,b){
if (a.Cash < b.Cash)
return -1;
if (a.Cash> b.Cash)
return 1;
return 0;
});
// Sort descending
myObject.sort(function (a,b){
if (a.Cash < b.Cash)
return 1;
if (a.Cash> b.Cash)
return -1;
return 0;
});