如何检查一个数组的值是否与另一数组的值不相等

How does one check if values of one array do not equal the values of another array?

本文关键字:数组 是否 不相等 何检查 检查 一个      更新时间:2023-09-26

我知道,TL;DR-请耐心等待。

这个Javascript函数应该接受用户输入的两个字符串(用户名、密码),使用随机函数正确猜测两个字段,生成存储在两个"猜测数组"中的随机字符猜测(共92个字符),并通过比较两组两个数组的值来告诉在同一实例中猜测用户名和密码需要多少次(试用):用户名的猜测数组与用户输入的用户名数组,以及密码的猜测数组与密码的用户输入数组。

我遇到麻烦的主要代码行:

while(userNameArray!=userNameGuessArray&&passwordArray!=passwordGuessArray){

通常(如果没有第二组数组),我会通过在"for循环"中嵌套"while循环"来处理这种情况,如下所示:

对于(x=0;x<userNameArray.length;x++){

while(userNameArray[x]!=userNameGuessArray[y]){

唯一的问题是,这次我需要检查除了第一组数组之外的另一组数组。

我的问题是:

如果不使用"!="或上面的代码,如何检查两个数组是否不共享完全相同的变量?

var username = document.getElementById("your_Username").value;
var userNameArray = username.split("");
var userNameGuessArray = [];
var password = document.getElementById("your_Password").value;
var passwordArray = password.split("");
var passwordGuessArray = [];
var alphabet = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u",
"v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9","`","~","!","@","#","$","%","^","&",
"*","(",")","[","]","{","}","_","-","|","''","'",'"',",",".",":",";","<",">","/","?"];  
var trials = 0;

    while (userNameArray != userNameGuessArray && passwordArray != passwordGuessArray){
        trials++;
        userNameGuessArray = [];
        passwordGuessArray = [];
            for (z = 0; z < userNameArray.length; z++){
                userNameGuessArray.push(alphabet[Math.floor(Math.random()*92)]);
            }
            for (y = 0; y < passwordArray.length; y++){
                passwordGuessArray.push(alphabet[Math.floor(Math.random()*92)]);
            }
    }

如有任何帮助,我们将不胜感激!

您可以编写一个助手函数来检查数组是否相等。关于这样的功能,请参阅本文。

然后你可以说:

while(!arrayEqual(arr1, arr2) && !arrayEqual(arr3, arr4)) 

编辑:
您应该阅读重构,这是一种将代码重组为更简单、可重用的单元的方法。

重构就是我们在这里所做的。检查数组是否相等并不取决于程序的功能,因此我们可以将其分解为自己的功能。这减少了现有函数中的代码,提高了可读性,并允许代码的其他部分重用arrayEqual函数。