如何创建选择特定数组的函数?

时间:2018-12-17 15:42:29

标签: javascript arrays

我正在尝试创建一个由多个不同按钮调用的函数,并根据哪个按钮调用该函数来选择特定的数组。

例如:

如果带有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中,所以我做不到。

谢谢您的帮助。

1 个答案:

答案 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];
}