如果我有一个具有属性的对象数组,并且我想按特定属性对对象进行排序,那么我将如何能够执行此操作?例如,假设我有一堆news
对象,每个对象具有date
属性。如何使用对象属性对对象数组进行排序
我将如何能够按日期对JavaScript中的每个对象进行排序?
如果我有一个具有属性的对象数组,并且我想按特定属性对对象进行排序,那么我将如何能够执行此操作?例如,假设我有一堆news
对象,每个对象具有date
属性。如何使用对象属性对对象数组进行排序
我将如何能够按日期对JavaScript中的每个对象进行排序?
如果阵列是ARR:
arr.sort(function(a,b) {
return (a.date < b.date ? -1 : (a.date > b.date ? 1 : 0));
});
您需要将自己的功能传递给.sort()
,这样的事情:
someArray.sort(function(a, b) {
if (a.date < b.date)
return -1;
else if (a.date > b.date)
return 1;
return 0;
});
你的功能只需要能够比较给定任意两个对象并返回负值或正值,具体取决于哪一个来自第一个或零,如果他们是平等的。 .sort()
函数将负责其余部分。
这意味着您可以对您喜欢的任何属性进行排序,甚至(可选)为第一个属性相等的情况引入第二排序。您也可以通过否定您的返回值来控制升序与降序。
糟糕,可能应该更多关注顶部的那条横幅,告诉我另一个答案已经发布。噢,我会毫不犹豫地离开我的回答,因为我和代码一起给了一个简短的解释。 – nnnnnn
你可以提供一个sort function到阵列的一种排序方法:
// Sample data
var newsArray = [
{date: '2010/8/12'},
{date: '2012/8/10'},
{date: '2011/8/19'}
];
// Sorting function
function sortNewsArray(arr) {
return arr.sort(function(a, b) {
return new Date(a.date) - new Date(b.date);
}
);
}
提供的日期字符串可以简单地转换为日期这一点。如果没有,只需重新格式化,以便它们可以在数据或排序功能中使用。
初始顺序:
排序顺序:
这已被问了很多很多次。 –