基于输入的数组索引值的返回值

时间:2019-09-11 22:03:00

标签: javascript reactjs forms ecmascript-6 ecmascript-5

我正在使用一个不确定如何构建的报告工具-

基本上,我正在使用一种表单,该表单需要用户输入并进行转换。

对象的整体结构看起来像这样...

=ARRAYFORMULA(SUBSTITUTE(TRANSPOSE(SPLIT(CONCATENATE({"♥"&MMULT(
 SPLIT(TRANSPOSE(SPLIT(TEXTJOIN(" ", 1, IF(INDIRECT("A2:A"&MAX(IF(A2:A<>"", 
 ROW(A2:A), )))="", "♦", A2:A)), "♦")), " ")*1, ROW(INDIRECT("A1:A"&COLUMNS(
 SPLIT(TRANSPOSE(SPLIT(TEXTJOIN(" ", 1, IF(INDIRECT("A2:A"&MAX(IF(A2:A<>"", 
 ROW(A2:A), )))="", "♦", A2:A)), "♦")), " ")*1)))^0),IF(
 SPLIT(TRANSPOSE(SPLIT(TEXTJOIN(" ", 1, IF(INDIRECT("A2:A"&MAX(IF(A2:A<>"", 
 ROW(A2:A), )))="", "♦", A2:A)), "♦")), " ")<>"", "♥♠", )}), "♥")), "♠", ))

一旦用户输入了一些数据,它应该接受输入并将其更改为另一个数字。

object {
 userInput: ' ',
 available: ' ',
}

转换将在1个函数中完成,然后更新对象。

伪代码:

silo_1Lookup = userInput => {
  silo_1DepthsFilling = [926, 893, 860, 827, 794, 761];
};

每个值将与该数组中的索引相对应,因此,如果if (object.userInput === "0") { object.available = "926"; } ,则object.avaible将为761(object.userInput === '2.5'

1 个答案:

答案 0 :(得分:1)

一种方法是使用字典将userInput映射到available值,例如:

const USER_MAPPING = {
  "0": "926",
  "3": "5412",
  "2": "2321"
  // ... rest values
};

// usage
return USER_MAPPING[object.userInput];

这种映射是经过硬编码的,并且为漏洞提供了机会,因此,如果userInput及其值后面有任何逻辑,则应为其生成一些函数:

return generateAvailable(object.userInput)