在数组中需要帮助(调用数组)



有人可以在数组部分帮助我吗?我正在制作一个颜色拖放游戏,其中物品将被拖入一个盒子,当它是错的还是对的时,人们会收到通知。

如何从以下位置调用数组:

 var items=[]
items.push({x:400,y:330,width:30,height:30,color:"rgba(100,223,0, 0.5)",isDragging:false});
items.push({x:300,y:330,width:30,height:30,color:"rgba(220,0,0, 0.5)",isDragging:false});
items.push({x:200,y:330,width:30,height:30,color:"rgba(220,223,0, 0.5)",isDragging:false});

自:

if (items[0].push(x > 400 && x <175 && y>50 &&y<235)){ 
 //console.log("ok");
 canvas2.innerHTML = "Score:" + 1;
 }
 else if(x > 255 && x < 376 && y > 50 && y <235){
  canvas2.innerHTML = "WRONG! please try again."
  rect = false;
  myMove = false;
 }
  else if(x > 455 && x < 576 && y > 50 && y <235){
  canvas2.innerHTML = "WRONG! please try again."
  rect = false;
  myMove = false;
 }

这只会将布尔值推送到数组:

if (items[0].push(x > 400 && x <175 && y>50 &&y<235)){ ...

首先对其进行评估:

x > 400 && x <175 && y>50 && y < 235

然后,其结果(真或假)被推送到您的数组(仅此而已)。您的条件检查基本上是检查push返回的长度,该长度始终为非零,因此您的条件为真并且将始终使用。

你的条件也是"不可能的",因为 x 不能同时高于 400 和低于 175......

要解决此特定问题,您需要稍微更改一下代码。我不确定您打算如何使用它,因为将结果推送到数组与您已经存储在那里的内容不匹配,如果您打算将 x 和 y 存储为新对象,则需要创建一个 JSON 字符串。

您可以尝试以下操作:

if (x > 175 && x < 400 && y > 50 && y < 235) {
    ...
} else if ...

(替换...使用实际代码)

最新更新