在JavaScript中,可以使用Array的sort()方法来对数组进行排序。要按照对象内部的值和日期对数组进行排序,可以自定义一个比较函数,然后将该函数作为参数传递给sort()方法。
下面是一个示例代码:
var array = [
{ name: 'John', date: new Date('2022-09-01') },
{ name: 'Alice', date: new Date('2022-08-01') },
{ name: 'Bob', date: new Date('2022-07-01') }
];
array.sort(function(a, b) {
// 比较对象内部的值
if (a.name < b.name) {
return -1;
}
if (a.name > b.name) {
return 1;
}
// 如果值相等,则比较日期
if (a.date < b.date) {
return -1;
}
if (a.date > b.date) {
return 1;
}
return 0; // 如果值和日期都相等,则保持原始顺序
});
console.log(array);
上述代码会按照对象的name属性进行升序排序,如果name相同,则按照date属性进行升序排序。运行以上代码,输出结果如下:
[
{ name: 'Alice', date: 2022-08-01T00:00:00.000Z },
{ name: 'Bob', date: 2022-07-01T00:00:00.000Z },
{ name: 'John', date: 2022-09-01T00:00:00.000Z }
]
可以看到,数组已按照要求的排序顺序排列。