javascript - 如何将字符串添加到变量中
问题描述
我需要为带有角度 7 的房屋内的新照明系统创建价格配置器。但是我用普通的 js 而不是 typescript + sass 对其进行编码。
第 1 页。用户选择他想要新建筑还是现有建筑.. Wifi/电线 [z1, z2...]
<label>New building</label>
<input type="radio" value="z1">
他应该选择建筑物内部的大小选项(=这将不同的控件集添加到第 3 页。)[-o1,-o2...]
<select><option value="-o1">small</option>...
他想要建造的东西(灯、空调、探测器......可能是多个)(=在第 4 页添加一组不同的控件。或添加它们)[y8,y9...]
- 选择控件(android、tv、keychain、移动检测器)(可以是多个)[-5x2-24x2]
- 计算价格
我需要将这些值作为字符串添加到变量中,然后获取这个新变量并将价格分配给它。z1-o1-y8-i-5x2-24x2 > z1 = 新建筑,o1 = 小建筑,y8 = 灯(可以是多个选项 -> 空调,探测器..),i = 开/关 + 定时(可以是多个options -> on/off + dimming...) , 5x2 表示控制器类型“5”在此选项中将是两次,“24”也是两次。“5”的价格 = 1000 和 “24” = 2000。
我不知道我这样做是否正确。这很复杂。如何才能做到这一点?谢谢
解决方案
如果每个选项都有价格,并且需要将价格相加,您可以这样做:
首先使用每个选项和相应的价格创建一个对象:
const prices = {
z1: 4999
z2: 7499
o1: 13000
...etc
}
然后你可以创建一个包含所有选项的数组:
const options = ['z1', 'o1', 'y8', 'i', etc];
并通过像这样循环遍历数组来确定价格:
function determinePrice(options) {
let price = 0;
for (let option of options) {
price += prices[option];
}
return price
}
如果你使用这种方法,我建议不要将 5x2 添加到选项中,只需添加 5 两次,它将被计算两次。
此外,要使其正常工作,您需要确保所有不同的页面都可以访问同一个数组,以便他们可以将用户选择的选项推送到同一个数组中。你如何做到这一点取决于你的项目结构,但你可以在这里寻找灵感:
推荐阅读
- python - 允许使用 REST API 创建和修改数据的位置服务
- r - 数值向量和字符向量中的 is.null 或空值或缺失值
- pointers - 两个指向同一内存的指针和 realloc 失败
- python - 比较 2 次并在几分钟内得到差异
- java - JUnit4 的数据库访问延迟?
- google-cloud-platform - 为什么我的 webapp.sh 没有运行并且磁盘没有附加到我的 GCP 实例?
- pandas - 具有最大总和值的类别列的熊猫组数据框
- python - 不存在这样的文件或目录来自服务器请求的错误
- python - 如何使用 Python openCV 仅在这张表格的图像中找到左上角框的位置(x、y、宽度、高度)?
- azure - 使用 Azure 防火墙的随机连接断开 - 没有可观察到的模式