我正在尝试创建一个由多个不同按钮调用的函数,并根据哪个按钮调用该函数来选择特定的数组。
例如:
如果带有id="Anterior"
的按钮调用了该函数,则该函数会选择名为plusAnterior
的数组:
var plusAnterior = ["p", "b", "t", "d", "ɸ", "β", "f", "v", "θ", "ð", "s", "z", "m", "n", "l", "ɬ", "r", "ɾ"];
var minusAnterior = ["c", "ɟ", "k", "g", "ʃ", "ʒ", "x", "ɣ", "ɲ", "ŋ", "j", "w", "ʡ", "h"];
var toAdd = [];
function addFeature(featureId) {
if (activeFeatures === 0) {
toAdd = // plusAnterior called here
}
}
问题是,我不能简单地执行toAdd = plusAnterior
,因为我希望我的功能对任何按下的按钮都有效。我曾想做类似getElementById("plus" + featureId)
的事情,但由于我要选择的数组不在我的HTML中,所以我做不到。
谢谢您的帮助。
答案 0 :(得分:3)
在javascript中,您几乎可以将object
用作键/值数组。
var testObject = {
featureId_a: [1, 2, 3, 4, 5], // etc
featureId_b: [1, 2, 3, 4, 5] // etc
}
然后我们可以像这样用您的方法将其返回...
function addFeature(featureId) {
return testObject[featureId];
}
我认为这就是你的意思。否则,您可以使用2D数组并根据索引进行选择。但这实际上取决于您的数据的最佳选择。
为简便起见,还需要进行一些消毒,当然,应该检查对象的属性。
if(testObject.hasOwnProperty(featureId)){
return testObject[featureId];
}