在Javascript中使用多种组合的最佳方法是什么?

时间:2017-01-06 07:20:25

标签: javascript

我正在使用客户端API处理项目,我需要根据多个字段更新某个项目的状态(目前有3个,但如果我决定添加更多功能,可能会在以后进行扩展)。

所以,基本上它类似于:

var field1 = ['a', 'b', 'c', 'd',...] //there are about 9 values
var field2 = ['i', 'ii', 'iii', 'iv',...] //there are about 11 values
var field3 = [1, 2, 3, 4,...] //there are more than 30 values

有效的流程示例如下:

用户使用值a更新i类型的项目,默认情况下会为值1选择i的相关值。所有这些都将触发更新b类型的项目(项目a的子项或父项),具有相同的值i或其他ii和依赖项iii1的{​​{1}}或2的值(对于最后一个字段,它可以是相同或完全不同的值)。

其他信息:

并非所有可能的字段之间的值组合都是可能的。 例如,来自a的{​​{1}}值的范围介于field1的1到4之间,而每个field2值的范围介于{{1}之间,范围介于1到6之间}}

到目前为止,我提出的解决方案是使用嵌套的field2语句,但这导致了大量不可读且容易出错的代码。

我做的另一件事是创建一个文字对象,例如:

field3

但仍需要添加一些switch以确保一切正确。

对我如何解决这个问题的任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

非常复杂的逻辑,但通常你的问题是 - 我有三个(或更多)数组,但它应该是对象的列表(或树)。我该怎么处理呢?

  1. 你能重做(改变)API吗?如果是这样,重做它,你的问题就会消失。
  2. 考虑一下您的数据结构 - 顶级组件,子组件,描述此类
  3. 制作工厂对象,它将处理您的分布式数据并从其中返回对象列表(或树)
  4. ......?
  5. 利润