【发布时间】:2021-04-24 11:14:35
【问题描述】:
我正在尝试根据该数组中的属性值对该对象数组进行排序。当我向正在使用的 API 发出请求时,这就是返回给我的内容。
0: {id: 23634, pollId: 6907, name: "B", type: "PollOption", totalAmountRaised: 341, …}
1: {id: 23635, pollId: 6907, name: "A", type: "PollOption", totalAmountRaised: 636, …}
2: {id: 23641, pollId: 6907, name: "C", type: "PollOption", totalAmountRaised: 246, …}
3: {id: 23642, pollId: 6907, name: "D", type: "PollOption", totalAmountRaised: 1092, …}
4: {id: 23643, pollId: 6907, name: "E", type: "PollOption", totalAmountRaised: 0, …}
我想按值 totalAmountRaised 从最大到最小对数组进行排序。我正在尝试使用 sort() 方法来避免编写一个大而复杂的函数。这就是我要找的。p>
arrayToSort.sort((a, b) => (a.totalAmountRaised < b.totalAmountRaised) ? 1 : -1);
0: {id: 23642, pollId: 6907, name: "D", type: "PollOption", totalAmountRaised: 1092, …}
1: {id: 23635, pollId: 6907, name: "A", type: "PollOption", totalAmountRaised: 636, …}
2: {id: 23634, pollId: 6907, name: "B", type: "PollOption", totalAmountRaised: 341, …}
3: {id: 23641, pollId: 6907, name: "C", type: "PollOption", totalAmountRaised: 246, …}
4: {id: 23643, pollId: 6907, name: "E", type: "PollOption", totalAmountRaised: 0, …}
但是,当我运行该方法时,它只交换了 totalAmountRaised 的值,它实际上并没有改变数组的顺序,这正是我正在寻找的。这就是实际返回的内容。
0: {id: 23634, pollId: 6907, name: "B", type: "PollOption", totalAmountRaised: 1092, …}
1: {id: 23635, pollId: 6907, name: "A", type: "PollOption", totalAmountRaised: 636, …}
2: {id: 23641, pollId: 6907, name: "C", type: "PollOption", totalAmountRaised: 341, …}
3: {id: 23642, pollId: 6907, name: "D", type: "PollOption", totalAmountRaised: 246, …}
4: {id: 23643, pollId: 6907, name: "E", type: "PollOption", totalAmountRaised: 0, …}
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
提供一个 MRE 来演示您所描述的行为。
标签: javascript arrays sorting