Javascript JSON上的排序逻辑
我想把我的名单分类。 我有这个JSONJavascript JSON上的排序逻辑,javascript,jquery,html,Javascript,Jquery,Html,我想把我的名单分类。 我有这个JSON { "ships": [{ "Code": "s01", "Quantity": "10", "Desc": "Ship 1", "Date": "Jul 01 2016" },{ "Code": "s03", "Quantity": "4", "Desc": "Ship 2", "Date": "Jul 03
{
"ships": [{
"Code": "s01",
"Quantity": "10",
"Desc": "Ship 1",
"Date": "Jul 01 2016"
},{
"Code": "s03",
"Quantity": "4",
"Desc": "Ship 2",
"Date": "Jul 03 2016"
},{
"Code": "s02",
"Quantity": "2",
"Desc": "Ship 4",
"Date": "Jul 02 2016"
}]
}
如何按日期、代码或字母顺序排序
我可以使用jQuery。我试过这个密码
var element = ...;
element.Sort();
它不起作用。您只需要实现自己的
sort()
逻辑。试试这个:
data.ships.sort(function(a, b) {
return a.Date < b.Date ? -1 : a.Date > b.Date ? 1 : 0;
});
data.ships.sort(函数a,b){
返回a.日期b.日期-1:0;
});
如果需要,可以更改已排序对象的属性。您甚至可以将其添加到函数中以保持代码干燥:
function sortByProperty(array, propName) {
array.sort(function(a, b) {
return a[propName] < b[propName] ? -1 : a[propName] > b[propName] ? 1 : 0;
});
}
sortByProperty(data.ships, 'Code');
函数sortByProperty(数组,propName){
array.sort(函数(a,b){
返回a[propName]b[propName]?1:0;
});
}
sortByProperty(data.ships,'Code');
您只需要实现自己的sort()
逻辑。试试这个:
data.ships.sort(function(a, b) {
return a.Date < b.Date ? -1 : a.Date > b.Date ? 1 : 0;
});
data.ships.sort(函数a,b){
返回a.日期b.日期-1:0;
});
如果需要,可以更改已排序对象的属性。您甚至可以将其添加到函数中以保持代码干燥:
function sortByProperty(array, propName) {
array.sort(function(a, b) {
return a[propName] < b[propName] ? -1 : a[propName] > b[propName] ? 1 : 0;
});
}
sortByProperty(data.ships, 'Code');
函数sortByProperty(数组,propName){
array.sort(函数(a,b){
返回a[propName]b[propName]?1:0;
});
}
sortByProperty(data.ships,'Code');
尝试使用以下功能:
function SortByName(x,y) {
return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name) ? 1 : -1 ));
}
// Call Sort By Name
arr.sort(SortByName);
试用功能:
function SortByName(x,y) {
return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name) ? 1 : -1 ));
}
// Call Sort By Name
arr.sort(SortByName);
仅使用Javascript:
function compare(a,b) {
if (a.last_nom < b.last_nom)
return -1;
else if (a.last_nom > b.last_nom)
return 1;
else
return 0;
}
仅使用Javascript:
function compare(a,b) {
if (a.last_nom < b.last_nom)
return -1;
else if (a.last_nom > b.last_nom)
return 1;
else
return 0;
}
获取如上所述的JSON数据。并编写具有特定列名的排序函数
var sortColumnName = "Code";
function SortByCode(x,y) {
return ((x[sortColumnName] == y[sortColumnName]) ? 0 : ((x[sortColumnName]> y[sortColumnName]) ? 1 : -1 ));
}
arr.sort(SortByCode);
排序后,打印排序后的JSON数组
document.write("<br/><b>After Sorting </b> <br/>");
for(var n=0;n<arr.length;n++){
document.write(arr[n].Code + ' ' + arr[n].Quantity + ' ' + arr[n].Desc + '<br>');
}
document.write(
排序后
);
对于(var n=0;n
获取如上所述的JSON数据,并编写具有特定列名的排序函数
var sortColumnName = "Code";
function SortByCode(x,y) {
return ((x[sortColumnName] == y[sortColumnName]) ? 0 : ((x[sortColumnName]> y[sortColumnName]) ? 1 : -1 ));
}
arr.sort(SortByCode);
排序后,打印排序后的JSON数组
document.write("<br/><b>After Sorting </b> <br/>");
for(var n=0;n<arr.length;n++){
document.write(arr[n].Code + ' ' + arr[n].Quantity + ' ' + arr[n].Desc + '<br>');
}
document.write(
排序后
);
对于(var n=0;n使用下划线!
使用下划线!
您能解释sort参数中的函数吗?sort()
在数组中一次迭代比较两个值。根据值的比较,您可以返回-1
、0
或1
。有关更多信息,请参阅MDN:您能解释sort参数中的函数吗?sort()
遍历数组,一次比较两个值。根据值的比较返回-1
、0
或1
。有关详细信息,请参阅MDN: