我希望通过字符串设置一个数组与另一个数组相等。我有以下数组:
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
与unavailable = "apartment234"
中的apartment234
相同。为什么它不起作用?你能帮帮我吗?
发布于 2017-05-24 02:25:55
定义一个具有属性"apartment234“的对象,然后可以使用括号表示法访问它。
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]);
发布于 2017-05-24 02:26:19
字符串" apartment234“与数组实例apartment234不相同。
当你这样做时:
unavailable.indexOf(....)
您只是在调用字符串上的indexOf()
方法。
您可以使用eval()方法来完成这一任务:
unavailable = eval("apartment" + ausgewzimmer);
eval()
以JS代码的形式计算或执行给定的字符串。
发布于 2017-05-24 02:39:58
如果您只需要将数组的字符串表示为函数调用的返回,那么不能只使用常规的Array.toString()和String.split(",")方法来处理这个问题吗?
https://stackoverflow.com/questions/44155605
复制