【发布时间】:2020-02-19 14:58:12
【问题描述】:
大家好,我想按“New_date”对数组进行排序,但在某些情况下,主对象内部还有另一个对象,键为“New_date”。你知道在这种情况下如何对数组进行排序吗?
arr.sort(function(a, b) {
a = new Date(a.New_date);
b = new Date(b.New_date);
return a>b ? -1 : a<b ? 1 : 0;
});
arr=
[0: {name:"Angel", data "random data", New_date: "2020-12-10"},
1: [0: {name:"Tom", data "random data"},
1: {name:"Tom", data "random data"},
New_date:"2020-11-10"],
2:name:"Angel", data "random data", New_date: "2020-09-10"}]
【问题讨论】:
-
return a.getTime() - b.getTime() -
ps。只要您首先定义数组,您的排序就会起作用,如果您想要降序排序,如果您想要使用 getTime 进行降序排序,只需反转条件 ->
return b.getTime() - a.getTime().. -
另外,您的排序比较函数不需要创建新对象。只需比较它们并返回一个小于、等于或大于零的值。您可以通过这种方式轻松地对一个或多个字段进行排序。
-
首先,这与 jQuery 完全无关。您正在使用普通的 JS
sort()方法。其次,您能否提供一个实际的数组示例。问题中的那个有很多语法问题。 -
您正在混合数组和对象。请确保你给出了一个有效的例子。您提供的示例不是有效的 javascript 结构。
标签: javascript arrays sorting javascript-objects