javascript - 简单算法

标签 javascript arrays algorithm

请比我聪明的人解决我需要在 javascript 中完成的这个简单的数学转换。

如果我有一个有序的数字数组...

var values = [99, 101, 102, 103, 104];
var low = 99;
var high = 104;

...我需要将数组中的最高值作为值 1 推送到新数组,将第二大值作为 2 推送到新数组,等等,所以新数组是...

var newArray = [1, 2, 3, 4, 6];

我可以制作一个可行的 hack 版本,但我需要一个适用于具有不同数值的数组的解决方案。感谢您的帮助!

最佳答案

您可以映射高值和值加一的增量并反转数组。

var values = [99, 101, 102, 103, 104],
    low = 99,
    high = 104,
    result = values
        .map(v => high + 1 - v)
        .reverse();
 
console.log(result);

关于javascript - 简单算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50705554/

相关文章:

javascript - JS中引用其他数组获取数组的值

arrays - 随机化或打乱数组

java - Java ScheduledExecutorService中使用的调度算法

javascript - 难以理解函数式编程组合、仿函数和 monad 示例

javascript - 使用 jquery Ajax 删除 django 中的模型对象

javascript - After Effects 动画 bodymovin.js : font issue, 看起来很困惑

javascript - 使用 carto.js 和传单库将圆添加到 map

javascript - 迭代并计算数组内对象内的对象

algorithm - 为什么链表的长度属性为 O(n)

algorithm - Xcode TextField显示数字,但是代码添加小数