【问题标题】:return value from array index value based on input根据输入从数组索引值返回值
【发布时间】:2019-09-11 22:03:00
【问题描述】:

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

基本上,我使用的是一个表单,它接受用户输入并进行转换。

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

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

一旦用户输入了一些数据,它应该接受输入并更改为不同的数字。

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

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

伪代码:

if (object.userInput === "0") {
  object.available = "926";
}

每个值将对应于该数组中的一个索引,因此如果 object.userInput === '2.5' 那么 object.avaible 将为 761 (arrayIndex: 6)

【问题讨论】:

  • 好的,有什么问题?
  • 我不知道该怎么做?当然,带有 26 个条件的 if else 语句不是解决这个问题的方法..
  • 如果 else 等于具有 26 个键和值的对象

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


【解决方案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)

【讨论】:

  • 谢谢!这就是我要找的
猜你喜欢
  • 2022-01-12
  • 2017-03-25
  • 2022-11-13
  • 2019-05-28
  • 2021-04-09
  • 2018-02-08
  • 2016-11-08
  • 1970-01-01
相关资源
最近更新 更多