我对表中的数据进行自定义排序(升序/降序)。为什么它只在一个方向排序?数据对象只更改一次。
data = [
{ name: "Вася", age: 23 },
{ name: "Маша", age: 18 },
{ name: "Вовочка", age: 6 }
];
up() {
let copy = JSON.parse(JSON.stringify(this.data))
copy.sort(function (a, b) {
return Number(a.age) + Number(b.age)
})
this.data = copy;
console.log(this.data);
}
down() {
let copy = JSON.parse(JSON.stringify(this.data))
copy.sort(function (a, b) {
return Number(a.age) - Number(b.age)
})
this.data = copy;
console.log(this.data);
}
您的代码应如下所示:
app.component.ts
说明:
如果您想将数组的元素按数字排序(按升序或降序),或按其他顺序对它们进行排序,则必须将
Array.sort()其作为参数传递给您自己的函数。这个函数通常被称为比较函数。比较函数应采用 2 个参数并返回:a如果第一个参数应该在b排序数组中的第二个参数之前,则为负值;b如果第二个参数应该在a排序数组中的第一个之前,则为正值;a。b因此,用于比较数字(按升序或降序)的函数应具有以下形式:
上升:
降序: