Javascript数组看似存储为字符串

时间:2016-04-16 20:17:40

标签: javascript

我正在使用jQuery(版本2.1.4)在网站上进行回合制游戏 我有一个自定义对象构造函数来制作播放器对象。就是这样:

https://i.gyazo.com/4fe3e81dd35e33d6cba5527e451032e2.png

如您所见,在最后一行,attack属性键具有数组的关联值。

然后我添加了一个函数来检查数组中是否有某个值,可以在这里找到:

enter link description here

最后,让玩家从他们可用的攻击列表中选择攻击的功能。 为了防止错误或其他不需要的行为,我检查通过提示选择的攻击是否在播放器可用的攻击列表中。在代码中,这看起来像这样:

if (player.attacks.contains(chosen_attack)) {
    *execute some code*
};

现在我想要发生的事情是,如果用户输入了防御'而不是“防御”,.contains()函数返回false并且代码未执行,而是询问玩家他们想要再次使用哪种攻击。
但是,如果用户输入“防御”,则返回true。然后我尝试将div的内容设置为等于player.attacks,结果发现player.attacks就像我在其上调用了.join('');函数一样;而不是它是一个数组,它是一个字符串中不同的值,直接放在彼此之后。 我尝试将同一div的内容设置为{typeof player.attacks},并且它表示对象,这表明它仍然是一个数组。

为什么数组存储为字符串?
或者,只要它被调用,数组就被解析成一个字符串?

0 个答案:

没有答案