【问题标题】:How to add string to a variable如何将字符串添加到变量中
【发布时间】:2023-03-12 17:10:02
【问题描述】:

我需要为房屋内的新照明系统创建价格配置器,角度为 7。但我用纯 js 而不是 typescript + sass 对其进行编码。

第 1 页。用户选择他想要新建筑还是现有建筑.. Wifi/wires [z1, z2...]

<label>New building</label>
<input type="radio" value="z1">
  1. 他应该选择建筑物内部的大小选项(=这会在第 3 页添加不同的控件集。) [-o1, -o2...]

     <select><option value="-o1">small</option>...
    
  2. 他想要建造的东西(灯、空调、探测器......可能是多个)(=在第 4 页添加一组不同的控件。或添加它们)[y8, y9...]

  3. 选择控件(安卓、电视、钥匙串、移动检测器)(可以是多个)[-5x2-24x2]
  4. 计算价格

我需要将这些值作为字符串添加到变量中,然后获取这个新变量并将价格分配给它。 z1-o1-y8-i-5x2-24x2 > z1 = 新建筑,o1 = 小建筑,y8 = 灯(可以是多个选项 -> 空调,探测器..),i = 开/关 + 定时(可以是多个options -> on/off + dimming...) , 5x2 表示控制器类型“5”在此选项中将是两次,“24”也是两次。 "5" = 1000 和 "24" = 2000 的价格。

我不知道我这样做是否正确。这很复杂。如何才能做到这一点?谢谢

【问题讨论】:

标签: javascript html css angular typescript


【解决方案1】:

如果每个选项都有价格,并且需要将价格相加,你可以这样做:

首先创建一个包含每个选项和相应价格的对象:

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 两次,它将被计算两次。

此外,要使其正常工作,您需要确保所有不同的页面都可以访问同一个数组,以便他们可以将用户选择的选项推送到同一个数组中。你如何做到这一点取决于你的项目结构,但你可以在这里寻找灵感:

Angular Component Interaction

【讨论】:

  • z1..,o1..,y8...,i.. 没有价格。我只有价格是控制器(5x2 和 24x2)
  • 看看这个。我需要准确地重新创建这个elkoep.inels.com/en/installation
  • 如果不是所有东西都有价格,您可以在循环中添加 if (prices[option]) ,然后才将价格添加到总价中,因此您只需忽略没有价格的选项。我看到您要完成的工作,但不完全理解您的要求。如果要将所有用户选择的选项保存为字符串,只需读取每个选择值并 go options += selectValue,它就会将所有值组成一个巨大的字符串。如果您将它们推入一个数组,您可以遍历它们并根据选择的内容确定价格。
猜你喜欢
  • 2015-11-14
  • 2012-02-23
  • 2015-08-20
  • 1970-01-01
  • 2017-09-09
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 2021-12-21
相关资源
最近更新 更多