Javascript 为什么我的输入被插入到两个具有相同索引的diff数组中?(js)
我有一个js脚本,它可以完美地作为战舰使用,我想更改脚本,因为现在我必须手动添加中的战舰数量,即使位置是随机生成的。 现在,我必须这样添加船只Javascript 为什么我的输入被插入到两个具有相同索引的diff数组中?(js),javascript,arrays,indexing,insert,Javascript,Arrays,Indexing,Insert,我有一个js脚本,它可以完美地作为战舰使用,我想更改脚本,因为现在我必须手动添加中的战舰数量,即使位置是随机生成的。 现在,我必须这样添加船只 ships: [{locations: ["", "", ""], hits: ["", "", ""]}, {locations: ["", "", ""], hits: ["", "", ""]}, {locations: ["", "", ""], hits: ["", "", ""]}], 我修改了脚本,现在它是
ships: [{locations: ["", "", ""], hits: ["", "", ""]},
{locations: ["", "", ""], hits: ["", "", ""]},
{locations: ["", "", ""], hits: ["", "", ""]}],
我修改了脚本,现在它是ship:[]
当输入一个位置并命中该位置时,新脚本会以某种方式命中具有相同命中索引的所有对象
我将提供工作脚本,其中工作完美,我添加的脚本
工作脚本
对于工作脚本,当加载时,ships看起来是这样的
ships: [{locations: ["10", "11", "12"], hits: ["", "", ""]},
{locations: ["22", "23", ""24], hits: ["", "", ""]},
{locations: ["51", "52", "53"], hits: ["", "", ""]}],
如果输入的位置正确,比如说10,那么hits属性中的数组将输入一个“hit”字符串,如下所示
ships: [{locations: ["10", "11", "12"], hits: ["hit", "", ""]},
{locations: ["22", "23", ""24], hits: ["", "", ""]},
{locations: ["51", "52", "53"], hits: ["", "", ""]}],
对于修改后的脚本ships
属性,仍然会生成类似的内容
ships: [{locations: ["10", "11", "12"], hits: ["", "", ""]},
{locations: ["22", "23", ""24], hits: ["", "", ""]},
{locations: ["51", "52", "53"], hits: ["", "", ""]}],
但假设输入了11
,就会发生这种情况
ships: [{locations: ["10", "11", "12"], hits: ["", "hit", ""]},
{locations: ["22", "23", ""24], hits: ["", "hit", ""]},
{locations: ["51", "52", "53"], hits: ["", "hit", ""]}],
不知何故,它在所有相同的索引中实现了命中
有人能帮我一下我错过了什么导致了这个吗?替换这个代码
locations = this.generateShipLocations();
为此:
locations.push(this.generateShipLocations());
您还需要初始化如下位置:
var locations = []
您正在覆盖而不是添加替换此代码
locations = this.generateShipLocations();
为此:
locations.push(this.generateShipLocations());
您还需要初始化如下位置:
var locations = []
您正在覆盖而不是添加这将使浏览器崩溃:(这将使浏览器崩溃:(