Javascript - 存储和返回与用户提供的字符串标题关联的数字的数组

时间:2017-12-20 22:53:17

标签: javascript arrays node.js string multidimensional-array

我已经搜索并尝试了很多阵列选项,但我似乎无法弄明白。首先,脚本只需要存储并返回每个月关联的数字。

例如,用户将为第1个月提供一个数字(比如200)。我会将数字200存储在索引1中的数组中。现在当我需要更新或检索该数字时,我只会引用数组[1] ]。简单。

现在他们想提供更多信息。他们希望提供与唯一字符串相关联的数字,该字符串可以是任何内容,例如" element5"或" department2",用于第1个月。

现在我需要能够像这个数组[1] [" element1"]一样调用数组来存储和检索数字。

我理解javascript不支持命名索引,我甚至无法动态创建命名索引。

这里的大多数答案都建议使用顺序编号的索引而不是动态命名的索引或变量,但在这种情况下,当用户想要提供字符串时,这是不可能的。

使用用户提供的字符串非常重要的原因是,如果他们再次输入该字符串,我们希望能够找到该值并替换/递增它。

2 个答案:

答案 0 :(得分:0)

您应该考虑将其存储为对象,而不是尝试将值存储为数组。在该实例中索引可以是您想要的任何密钥。

然后,您可以使用arr.1.stringName之类的符号来访问您的值 编辑:如上所述,上述行不正确。适当的访问就像这样 arr['1'].stringName

答案 1 :(得分:0)

GrouchyPanda's answer中所述,您可以使用对象:



var data = {}

data['month1'] = 200
data['whatever'] = 300

console.log(data['month1'])




或者,如果您必须使用数组,则可以使用Array.prototype.find



data = [
  {key: 'month1', value: 200},
  {key: 'whatever', value: 400}
]

item = data.find((i) => i.key == 'month1')
console.log(item.value)




如果您不熟悉ES6语法,(i) => i.key == 'month1'function(i) { return i.key == 'month1' }的缩写。