javascript - 如何从这个 javascript 中减少代码行
问题描述
我有这段代码,事实是重复的,它只会更改名称,因为它们的作用相同,但不同之处在于我发送以调用不同的数据,并且我想减少该代码
const times = truck["Fase 1"];
const [h, m, s] = times.split(":");
const minutes = parseInt(h) * 60 + parseInt(m) + s / 60;
const time = minutes;
const color = time <= 18 ? "#0CC234" : time < 30 ? "#FACE5A" : "#FF0101";
const Fase2 = truck["Fase 2"];
console.log({ Fase2 });
const [hs, ms, ss] = Fase2.split(":");
const minutesF2 = parseInt(hs) * 60 + parseInt(ms) + ss / 60;
const time2 = minutesF2;
const colors = time2 <= 18 ? "#0CC234" : time2 < 30 ? "#FACE5A" : "#FF0101";
感觉代码重复很多,可以减少,但是不知道怎么做
解决方案
您可以将重复的部分移动到函数中:
const truck = {
'Fase 1': '11:22:33',
'Fase 2': '11:22:33',
};
function getColor (fase) {
const [h, m, s] = truck[fase].split(':');
const timeInMinutes = parseInt(h) * 60 + parseInt(m) + s / 60;
const color = timeInMinutes <= 18 ? "#0CC234" : timeInMinutes < 30 ? "#FACE5A" : "#FF0101";
return color;
}
console.log(getColor('Fase 1'));
console.log(getColor('Fase 2'));
推荐阅读
- vue.js - 捆绑的 vue-cli SPA 的外部 .env
- excel - Excel 脚本:无法读取属性“getRowCount”不适用于 Power Automate
- javascript - AWS.ApiGatewayManagementApi.postToConnection() 调用一次时执行两次
- windows - 在 Terraform 中的远程 Windows EC2 实例上执行 Powershell 脚本
- docker - 从 Jenkins 工作区卷曲到 docker 容器返回错误
- java - 如何将 LinkedHashMap 转换为 JSONObject
- flutter - Flutter:在 switch -> Case 表达式必须是常量 - 这怎么不是 const?
- python - 我的代码有问题,我的代码输出是实时检测鼻子和脸,我最想做什么?
- python-3.x - 关键字魔术工具如何为任何关键字搜索大量获取相关关键字和问题?
- reactjs - 如何在 extjs 应用程序中包含非 sencha 包?