这是我的代码:
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
排序
我在做什么错了?
这就是令我困惑的地方: 这两个都返回相同的顺序:
const sortedDiscounts = discounts.sort((a, b) => a.quantity > b.quantity);
const sortedDiscounts2 = discounts.sort((a, b) => a.quantity < b.quantity);
试图弄清楚它们为什么相同
答案 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);