Javascript 两数组相等性检验

Javascript 两数组相等性检验,javascript,arrays,equality,p5.js,Javascript,Arrays,Equality,P5.js,这更像是一个逻辑问题。 我想不出我的功能出了什么问题 // This function is meant to check if 3 pixels // are colored and therefore if the canvas is full function checkIfFull() { let emptyPixel = [0, 0, 0, 0]; let pixel1 = get(1, 1); //let pixel2 = get(599,599);

这更像是一个逻辑问题。 我想不出我的功能出了什么问题

// This function is meant to check if 3 pixels 
// are colored and therefore if the canvas is full

function checkIfFull() {
    let emptyPixel = [0, 0, 0, 0];
    let pixel1 = get(1, 1);
    //let pixel2 = get(599,599);
    //let pixel3 = get(400, 50);
    console.log(pixel1);

    if (pixel1 === emptyPixel) {
        console.log(true);
    } else {
        console.log(false);
    }
}
我正在运行P5.js库。get给了我一个数组[a,b,c,d] 我试图测试这两个emptyPixel/pixel1之间的相等性或差异性

这些是我尝试过的事情:测试阵列中的每个位置


谢谢

您的数组可以简单地转换为字符串以检查是否相等

常量emptyPixel=0,0,0,0; 函数校验{ 常量像素1=get1,1; 返回pixel1.toString==emptyPixel }
logcheckIfFull如果一个空像素是一个数组[0,0,0,0],你可以用这样的东西来测试它

function checkIfEmpty(pixel) {
  return pixel.every(x => x === 0)
}

数组不使用==运算符进行比较,您应该循环数组并比较每个元素。在像java这样的任何其他语言中,都有一些实用程序可以帮助找到相等性。得到了相同的结果:不知道为什么:/您可以发布用于此目的的代码吗?在检查数组的相等性时,您可能希望尝试另一种可能性,即通过JSON.stringify将它们转换为字符串,然后进行比较,尽管这可能并非在所有情况下都是最佳的。在您举例说明的情况下,这可能会很好地工作,尽管我不能谈论性能影响。值得思考的是,仅此而已。为什么我们可以假设一个值为[0,0,0,0]的像素是空的?为什么一个检查是否与一个名为emptyPixel的东西相等的函数称为checkIfFull?我并不想难为你,我真的很想帮助你改进这个答案。值为[0,0,0,0]的像素可以设置为黑色,alpha值为零。我认为我们不能仅仅通过检查颜色和alpha值来确定是否设置了像素。