我正在使用jQuery(版本2.1.4)在网站上进行回合制游戏 我有一个自定义对象构造函数来制作播放器对象。就是这样:
如您所见,在最后一行,attack属性键具有数组的关联值。
然后我添加了一个函数来检查数组中是否有某个值,可以在这里找到:
最后,让玩家从他们可用的攻击列表中选择攻击的功能。 为了防止错误或其他不需要的行为,我检查通过提示选择的攻击是否在播放器可用的攻击列表中。在代码中,这看起来像这样:
if (player.attacks.contains(chosen_attack)) {
*execute some code*
};
现在我想要发生的事情是,如果用户输入了防御'而不是“防御”,.contains()
函数返回false并且代码未执行,而是询问玩家他们想要再次使用哪种攻击。
但是,如果用户输入“防御”,则返回true。然后我尝试将div的内容设置为等于player.attacks,结果发现player.attacks就像我在其上调用了.join('');
函数一样;而不是它是一个数组,它是一个字符串中不同的值,直接放在彼此之后。
我尝试将同一div的内容设置为{typeof player.attacks}
,并且它表示对象,这表明它仍然是一个数组。
为什么数组存储为字符串?
或者,只要它被调用,数组就被解析成一个字符串?