Javascript 将第一个数组中的元素位置与另一个数组中的元素位置进行比较

Javascript 将第一个数组中的元素位置与另一个数组中的元素位置进行比较,javascript,jquery,arrays,Javascript,Jquery,Arrays,当我需要比较两个阵列时,我在一个游戏中被绊倒了。两个数组都包含数字。第一个数组对数字进行排序,第二个数组按用户顺序对数字进行排序。我试图实现的是:比较这些数组并在用户数组中找到错误的位置(如果存在),然后返回错误位置上的数字 我所尝试的: var a = ["1","2","3","4","5"]; var d = ["1","2","3","5","4"]; function checkArrays( arrA, arrB ){ if(arrA.length !== arrB.le

当我需要比较两个阵列时,我在一个游戏中被绊倒了。两个数组都包含数字。第一个数组对数字进行排序,第二个数组按用户顺序对数字进行排序。我试图实现的是:比较这些数组并在用户数组中找到错误的位置(如果存在),然后返回错误位置上的数字

我所尝试的:

var a = ["1","2","3","4","5"];
var d = ["1","2","3","5","4"];

function checkArrays( arrA, arrB ){

    if(arrA.length !== arrB.length) return false;

    var cA = arrA.slice().sort().join(","); 
    var cB = arrB.slice().sort().join(",");

    return cA===cB;

}
编辑:
randomarygenerated.push(generateRandoms(0,99))-其中GeneratorDomains是一个函数。在for中,我按随机数组生成了一些数字,因此数组的长度不同

correctOrderArray.push(randomArrayGenerated.sort(函数(x,y){return x-y}))-在correctOrderArray中添加来自随机数组但已排序的元素

userArray.push(userOrder)-其中userOrder是一个从输入中获取值的变量

如果
userArray.length==correctOrderArray.length
-我想使用
correctOrderArray.find(函数(a,b){返回a!==userArray[b]})比较这些数组

为什么不工作?(未捕获类型错误:未定义不是函数)

它只是一个循环

function checkArrays( arrA, arrB ){
    for(var i = 0; i < arrA.length; i++) { if(arrA[i] !== arrB [i]) return arrB [i] };
}
var a=[“1”、“2”、“3”、“4”、“5”];
变量d=[“1”、“2”、“3”、“5”、“4”];
var错误定位=错误;
函数校验数组(arrA、arrB){
如果(arrA.length!==arrB.length)返回false;
对于(变量i=0;i
for循环真的很容易做到这一点吗?你需要确认它们都有所有数字,还是只想知道第一个数字的位置不正确?我需要检查与排序数组相比,用户数组中是否存在位置不正确的数字,并从用户数组返回位置不正确的数字(而不是位置)。就像上面的例子,如果我们比较a和b,其中b是用户数组,我只需要返回5,4或4,5并不重要,因为你可以看到4和5在与数组比较时被切换@Shiala是的,目的是从函数返回匹配值。根据这个问题,我认为创建一个附加变量没有任何价值。@Shiala。不,不会的。这是一种完全合法的退货用法。是的,我想会的,但那只是当你不在函数中的时候
a.find(function(v, i){ return v !== d[i] })
var a = ["1","2","3","4","5"];
var d = ["1","2","3","5","4"];
var wrongPositioned = false;

function checkArrays( arrA, arrB ){

    if(arrA.length !== arrB.length) return false;

    for (var i = 0; i< arrA.length; i++) {
        if (arrA[i] !== arrB[i]) {
           wrongPositioned = {
               position: i, 
               value: arrA[i],
               userValue: arrB[i],
               valuePositionInUser: arrA.indexOf(arrB[i])
           };
           break;  
        }
    }

    return wrongPositioned;

}