我已经搜索并尝试了很多阵列选项,我似乎无法弄明白。首先,脚本只需要存储并返回每个月关联的数字。
例如,用户将为第1个月提供一个数字(比如说200)。我会将数字200存储在索引1中的数组中。现在当我需要更新或检索该数字时,我只会引用数组[1]。简单。
现在他们想提供更多信息。他们希望提供一个与唯一字符串相关联的数字,该字符串可以是第1个月的任何内容,例如“element5”或“department2”。
现在我需要能够调用像这个Array [1] [“element1”]这样的数组来存储和检索数字。
我理解javascript不支持命名索引,也不能让它动态创建命名索引。
这里的大多数答案都建议使用顺序编号的索引而不是动态命名的索引或变量,但在用户想要提供字符串时,这种情况并非不可能。
使用用户提供的字符串如此重要的原因是,如果它们再次输入该字符串,我们希望能够找到该值并替换/递增它。
正如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' }
的缩写。
您应该考虑将其存储为对象,而不是尝试将值存储为数组。在该实例中索引可以是您想要的任何密钥。
然后,您可以使用arr.1.stringName
等符号访问您的值
编辑:上述行不正确,如评论中所述。适当的访问将是这样的
arr['1'].stringName