如何查看数组中的每个值是不是小于某个数字?

Posted

技术标签:

【中文标题】如何查看数组中的每个值是不是小于某个数字?【英文标题】:How can I see if every value in an array is less than a certain number?如何查看数组中的每个值是否小于某个数字? 【发布时间】:2020-09-12 22:54:46 【问题描述】:

我希望游戏中的角色在平台上弹跳时向上移动。为此,我计算了每个平台与我的角色之间的 x 和 y 距离,然后将这些值放入两个数组中:一个用于 x 距离,另一个用于它们之间的 y 距离。如果角色在平台上,我希望它向上移动。如何确定数组中的值是否小于某个数字?我知道我的代码效率很低,但我也不知道如何改进。

    function loop(e:Event):void

var plats:Array = new Array();
//adding platforms to array
  plats.push(plat1);
  plats.push(plat2);

//calculating distance between platform and character

var distx1 = Math.sqrt((doodler.x - plat1.x)*(doodler.x - plat1.x));
var disty1 = Math.sqrt(((doodler.y + 50) - plat1.y)*((doodler.y + 50) - plat1.y));
var distx2 = Math.sqrt((doodler.x - plat2.x)*(doodler.x - plat2.x));
var disty2 = Math.sqrt(((doodler.y + 50) - plat2.y)*((doodler.y + 50) - plat2.y));

//adding distance calculations to distance arrays
var disx:Array = new Array();
disx.push(distx1);
disx.push(distx2);

var disy:Array = new Array();
disy.push(disty1);
disy.push(disty2);

  for (var i:int = 0; i < disx.length; i++) 
   //this is where i'm confused
   if(disx[i] < 65 && disy[i] < 3)

      doodler.y -= 100;

       

【问题讨论】:

通常使用循环来批量处理 Arrays 中的数据。 @Organis 好吧我做错了什么 您混淆了 allany 之间的区别。您的语句在满足给定条件的每个 i 上执行。但是你想要的是检查它们是否 all 满足条件。 我确实想检查其中是否有任何满足条件。我当前的语句现在根本没有执行,这就是为什么我想知道我的代码是否有问题。如果我输出disx[0]和disy[1],都小于3,所以字符应该向上移动,但不是@Organis 如果我只在数组中放一个值,它就可以工作。但是一旦我添加了多个距离值,角色就会立即从屏幕上移出,因为我在 if 语句之后的代码中有这个:else doodler.y += 5; 【参考方案1】:

allany 之间的区别。

var aFlag:Boolean = true;

for (var i:int = 0; i < disx.length; i++)

    aFlag &&= disx[i] < 65;
    aFlag &&= disy[i] < 3;


// At this point, aFlag is true ONLY if
// all the conditions are true at the same time.

if (aFlag)

    doodler.y -= 100;

【讨论】:

以上是关于如何查看数组中的每个值是不是小于某个数字?的主要内容,如果未能解决你的问题,请参考以下文章

如何查看数据库中的结果是不是与我在数组中的值匹配

如何选择数字后缀小于某个值的变量

每个元素小于某个特定数字的子数组的总和

js如何查找数组中是不是存在某个值

如何检查arraylist中的数组是不是包含某个值?

查找一行中是不是有 n 个小于某个数字的数据点