【发布时间】:2019-04-29 01:40:20
【问题描述】:
这是我的代码:
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;
amountSortedDiscounts 和amountSortedDiscounts2 相同,即使'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);
试图弄清楚为什么它们都相同
【问题讨论】:
-
a.quantity > b.quantity这不是一个有效的排序比较函数。 -
还有Array.sort,它不会先复制数组,你会想要克隆数组然后排序。
-
谢谢,我理解的数字,但还有一个问题。这个:
const sortedDiscounts = discounts.sort((a, b) => a.quantity > b.quantity);和这个const sortedDiscounts = discounts.sort((a, b) => a.quantity < b.quantity);也返回相同的对象数组。这是为什么?是否与@Keith 第二条评论有关? -
@rosualin 阅读了我链接的欺骗...
标签: javascript reactjs sorting indexof