使用string设置数组的名称

时间:2017-05-24 10:22:05

标签: javascript jquery

我想通过一个字符串设置一个数组等于另一个数组。 我有以下数组:

var apartment234 = ["01.07.2017","02.07.2017","03.07.2017","04.07.2017","05.07.2017","06.07.2017","07.07.2017"];

我有以下字符串,它等于上面的数组(apartment234)。

unavailable = "apartment" + ausgewzimmer;

如果我现在想要一个函数返回基于数组的东西,如下所示,它不会返回任何内容。

return !!(unavailable.indexOf(date.format('DD.MM.YYYY')) > -1);

但是,如果我直接使用数组,它确实有用。

return !!(apartment234.indexOf(date.format('DD.MM.YYYY')) > -1);
//returns desired values

我不确定我做错了什么...... unavailableapartment234中的unavailable = "apartment234"相同。它为什么不起作用?你能帮我吗?

3 个答案:

答案 0 :(得分:2)

使用属性" apartment234"定义一个对象,然后可以使用bracket notation访问它。



var obejct = {
  "apartment234": ["01.07.2017", "02.07.2017", "03.07.2017", "04.07.2017", "05.07.2017", "06.07.2017", "07.07.2017"]
};

var unavailable = "apartment" + 234;
console.log(obejct[unavailable]);




答案 1 :(得分:1)

字符串" apartment234"与数组实例apartment234不同。

执行此操作时:

unavailable.indexOf(....)

您只是在字符串上调用indexOf()方法。

您可以使用eval()方法来完成此任务:

unavailable = eval("apartment" + ausgewzimmer);

eval()评估或执行给定的字符串作为JS代码。

答案 2 :(得分:0)

如果你只需要将数组的字符串表示作为函数调用的返回,那么你不能只使用常规的Array.toString()和String.split(“,”)方法来处理它吗?