React JS按数量排序>和<均返回相同结果

时间:2018-11-27 10:26:37

标签: javascript reactjs sorting indexof

这是我的代码:

const sortedDiscounts = discounts.sort((a, b) => a.quantity > b.quantity);
const amountSortedDiscounts = discounts
.map(el => el.quantity)
.concat(quantity + 0.5)
.sort((a, b) => a.quantity > b.quantity);
const amountSortedDiscounts2 = amountSortedDiscounts.sort(
(a, b) => a.quantity < b.quantity
);
const index = amountSortedDiscounts2.indexOf(quantity + 0.5) - 1;

mountSortedDiscounts和amountSortedDiscounts2都相同,即使tho'1按a.quantity > b.quantity排序,后者也按a.quantity < b.quantity排序

我在做什么错了?

enter image description here

编辑:

这就是令我困惑的地方: 这两个都返回相同的顺序:

const sortedDiscounts = discounts.sort((a, b) => a.quantity > b.quantity);
const sortedDiscounts2 = discounts.sort((a, b) => a.quantity < b.quantity);

试图弄清楚它们为什么相同

enter image description here

2 个答案:

答案 0 :(得分:2)

如果要处理数字,请改用a.quantity - b.quantity

查看排序方式: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

答案 1 :(得分:1)

比较是错误的。

ASC(升序):

const sortedDiscounts = discounts.sort((a, b) => a.quantity - b.quantity);

DESC(降序):

const sortedDiscounts = discounts.sort((a, b) => b.quantity - a.quantity);