javascript - 如何使用 JS 数组的自定义排序进行排序?
问题描述
假设我有一个类似的数组[2,5,1,11,10,45]
和一个变量num = 99
。我想根据最接近的倍数(也应该是最小的倍数)到 99 或可以将其除以最小倍数的数字对数组进行排序。
因此,如果我们看到上面的数组,我们可以看到 99 可以被 11 完全整除,其中商为 9。除以我的 10 将产生除数为 10。其他人也是如此。但是当我们除以 99/45 时,商为 2。
因为 1 始终是 99 的倍数或 99 以外的任何数字。它应该位于数组的末尾。
简而言之,它应该根据最小商进行排序。
所以排序的输出应该是[45,11,10,5,2,1]。
解决方案
尝试这个:[2,5,1,11,10,45].sort((a, b) => 99 / b - 99 / a)
但是,如果您的逻辑仅在除法中,则您可以对数字进行排序:
[2,5,1,11,10,45].sort((a, b) => b - a)
因为比n大,比除法的结果小
推荐阅读
- javascript - 获取数据(全球?)和导航的存储设计
- javascript - Vue.js中子组件中迭代槽的迭代槽内容
- azure-functions - 多功能应用程序未部署
- django - 十进制字段无法更新值
- keras - 混淆矩阵值错误:找到样本数量不一致的输入变量:[3, 360]
- c - 当我包含 Esp32 Google Cloud IoT 库函数时 CO2 传感器值发生变化
- javascript - JavaScript 代码未在函数内执行
- javascript - 为什么对象被视为数组?
- python - 可以使用 tkinter 按钮重复更改画布对象吗?
- jenkins - 我不能混合 ECS 和 k8s 从站