gpt4 book ai didi

javascript - 如何使用 js-quantities 转换为最佳前缀?

转载 作者:太空宇宙 更新时间:2023-11-04 00:20:37 27 4
gpt4 key购买 nike

我的值为“1200000 mm”,并且我不想有一种自动转移到最佳前缀的方法,例如:

import Qty from 'js-quantities'

const qty = new Qty(1200000, 'mm').toBest()
// now set to 1.2, 'km' same as doing to('km') directly

这可能吗?

或者我如何获得带有给定单元前缀的单元的有序列表来自己完成?

最佳答案

这是一个递归过程的小示例,其中单位映射除以 1000,直到达到最佳值

function toBest(num, unit) {
const map = {
"mm" : "m",
"m" : "km",
"km" : "km"
};
let recurse = false;
let nextUnit = unit;
if ((num/1000) >= 1) {
num = (num / 1000);
nextUnit = map[unit];
recurse = true;
}
if (recurse) {
return toBest(num, nextUnit)
} else {
return num+" "+unit;
}
}

console.log(toBest(1000, "mm"));
console.log(toBest(10000000, "mm"));
console.log(toBest(47243278423, "m"));
console.log(toBest(1000000, "mm"));
console.log(toBest(999999, "mm"));
console.log(toBest(2, "mm"));

现在,为了扩展这一点,您说您可能想要 cm 到 m,甚至 km 到 dm。这就是对象映射变得棘手的地方。您必须为您想要的每个可能的转换显式定义除数。

const map = {
"mm" : {
"to" : "cm",
"divisor" : 10
},
"km" : {
"to" : "dm",
"divisor" : .0001
},
}

现在你的循环变得更加 if/else 检查,但递归逻辑应该成立。

关于javascript - 如何使用 js-quantities 转换为最佳前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44685532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com