我想通过一个字符串设置一个数组等于另一个数组。 我有以下数组:
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
我不确定我做错了什么...... unavailable
与apartment234
中的unavailable = "apartment234"
相同。它为什么不起作用?你能帮我吗?
答案 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(“,”)方法来处理它吗?