用普通Javascript进行计算
用普通Javascript进行计算,javascript,Javascript,多年来,我一直在学习堆栈溢出,但这是我的第一个问题。 我尝试用java脚本构建一个价格计算器。 其思想是选择一个许可证模型(选择器),然后使用一个基本价格(通过输入字段),选择一个具有多因子链接的用户量词(通过输入字段)。最后,基本价格将相乘,并显示最终价格。 我很满意,数学部分是正确的,但一定有语法错误,我驳回。我希望这是一个有价值的问题,因为我有一段时间被这个问题困住了 如果有人对此有意见,那就太好了,谢谢 以下是我的想法: //从inputfiels获取输入 var license=
多年来,我一直在学习堆栈溢出,但这是我的第一个问题。
我尝试用java脚本构建一个价格计算器。
其思想是选择一个许可证模型(选择器),然后使用一个基本价格(通过输入字段),选择一个具有多因子链接的用户量词(通过输入字段)。最后,基本价格将相乘,并显示最终价格。
我很满意,数学部分是正确的,但一定有语法错误,我驳回。我希望这是一个有价值的问题,因为我有一段时间被这个问题困住了 如果有人对此有意见,那就太好了,谢谢 以下是我的想法:
//从inputfiels获取输入
var license=parseInt(document.getElementById(“license”).value);
var Quantity=parseInt(document.getElementById(“数量”).value);
var Basis=parseInt(document.getElementById(“Basis”).value);
//桌面用户号码
var User=[3,8,16,36,50];
//网络视图编号
var视图=[20,50,80,200,500];
//链接倍增系数(例如,16个用户=倍增系数x 3,或50个视图=倍增系数x 2)
var乘法=[1,2,3,4,5];
//计算桌面
功能桌面_内核(数量、基础){
var指数;
for(乘法索引){
如果(用户[索引-1]==数量){
返回基准*乘以[指数-1];
}
}
}
//计算网
函数Web_内核(数量、基础){
var指数;
for(乘法索引){
if(查看[索引-1]==数量){
返回基准*乘以[指数-1];
}
}
}
//许可证模式:桌面或Web
功能许可证\u选择器(){
如果(许可证==1){
var价格=桌面内核(数量、基础);
}否则,如果(许可证==2){
var价格=网络内核(数量、基础);
}
document.getElementById(“价格”).value=价格;
}
//显示输出
document.getElementById(“Price”).value=Desktop\u内核(数量、基础);
桌面
网状物
- 您需要读取计算函数中的输入
- 不需要有两个只改变一个变量的内核函数;而是将该列表作为参数传入
- 我不确定你的计算是否正确;如果数量未在用户/视图数组中列出,则它将始终返回未定义的
。应该是
而不是=
,以拥有一个分层系统吗?(我这样更正了它,不确定这是否是你的意思。)==
//桌面用户编号
var User=[3,8,16,36,50];
//网络视图编号
var视图=[20,50,80,200,500];
//链接倍增系数(例如,16个用户=倍增系数x 3,或50个视图=倍增系数x 2)
var乘法=[1,2,3,4,5];
函数核(数、量、基){
var指数;
for(乘法索引){
if(数字[索引-1]>=数量){
返回基准*乘以[指数-1];
}
}
}
//许可证模式:桌面或Web
函数重新计算(){
//从inputfields获取输入
var license=parseInt(document.getElementById(“license”).value);
var Quantity=parseInt(document.getElementById(“数量”).value);
var Basis=parseInt(document.getElementById(“Basis”).value);
变量编号=(许可证==1?用户:视图);
var价格=内核(数量、数量、基础);
document.getElementById(“价格”).value=价格;
}
桌面
网状物
第一项工作是正确缩进代码。帮助您维护它,并帮助我们阅读和理解您的问题。@Utkanos我冒昧地用Prettier重新格式化了OP的代码,因此这不再是一个问题。您不应该在页面加载时读取输入值,但在处理单击事件时。我建议构建一个更组合的数据结构,拥有三个必须保持相同顺序的独立阵列通常会在以后给您带来问题。您可以有一个包含三个属性的对象数组。您已经声明并为许可证
和其他全局级别的对象赋值。因为它将在加载脚本时进行计算,然后不会得到更新。因此,您将始终获得许可证=''
。使用parseInt(document.getElementById(“license”).value)
无论您在哪里使用license
,与其他变量类似。在内核函数中不应该考虑数量吗?