js 根据数组中的对象按最新时间排序
时间: 2023-02-07 22:29:44 浏览: 80
你可以使用 JavaScript 的 sort() 方法来对数组排序。
例如,假设你有一个数组,其中包含若干个对象,每个对象都有一个 "date" 属性表示时间:
```
let arr = [
{ date: "2022-01-01" },
{ date: "2021-01-01" },
{ date: "2020-01-01" }
];
```
你可以使用以下代码对数组进行排序:
```
arr.sort(function(a, b) {
let dateA = new Date(a.date);
let dateB = new Date(b.date);
return dateA - dateB;
});
```
这将对数组按照时间进行排序,最新的时间会排在最后。
注意:sort() 方法会改变原数组,如果你想保留原数组,可以使用 slice() 方法先复制一份数组再进行排序。
例如:
```
let sortedArr = arr.slice().sort(function(a, b) {
let dateA = new Date(a.date);
let dateB = new Date(b.date);
return dateA - dateB;
});
```
相关问题
js 对象数组按时间大小排序
假设你的数组中每个对象都有一个名为 `time` 的属性表示时间,那么你可以使用 JavaScript 中的 `sort` 方法对数组进行排序。具体代码如下:
```javascript
const arr = [
{ time: "2022-01-01 10:00:00" },
{ time: "2022-01-01 12:00:00" },
{ time: "2022-01-01 11:00:00" },
];
arr.sort((a, b) => new Date(a.time) - new Date(b.time));
```
这里使用 `sort` 方法并传入一个函数作为参数,函数接收两个参数 `a` 和 `b`,分别代表数组中的两个元素。函数返回值决定了这两个元素在排序后的顺序。在这个例子中,我们将每个元素的 `time` 属性转换成 `Date` 对象,并比较它们的大小,最终得到按时间从小到大排序的数组。
注意:如果你的时间字符串格式不是 `YYYY-MM-DD HH:mm:ss`,那么可能需要先将其转换成这个格式才能使用 `Date` 对象进行比较。
js数组中根据对象属性排序
可以使用`Array.prototype.sort()`方法结合比较函数来根据对象属性排序。比较函数应该返回一个负数、0或正数,表示第一个参数应该排在前还是后。
例如,如果你想根据对象的`age`属性进行排序,可以这样写:
```javascript
const arr = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 20 }
];
arr.sort((a, b) => a.age - b.age);
console.log(arr);
// [{ name: 'Charlie', age: 20 }, { name: 'Alice', age: 25 }, { name: 'Bob', age: 30 }]
```
这个比较函数将返回负数、0或正数,取决于`a.age`和`b.age`之间的大小关系。如果`a.age`小于`b.age`,则返回负数,告诉`sort()`方法将`a`排在`b`前面;如果它们相等,则返回0,保持不变;如果`a.age`大于`b.age`,则返回正数,告诉`sort()`方法将`a`排在`b`后面。
你可以根据需要修改比较函数来排序其他属性。