【发布时间】:2014-11-20 21:17:39
【问题描述】:
当我需要比较两个数组时,我被困在游戏中。两个数组都包含数字。第一个数组对数字进行了排序,第二个数组按用户顺序排列了数字。我试图实现的是:比较这些数组并在用户数组中找到错误的位置(如果存在)并返回错误位置的数字。
我尝试过的:
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;
}
编辑: randomArrayGenerated.push(generateRandoms(0,99)); - 其中 generateRandoms 是一个函数。在 for 中,我推入 randomArrayGenerated 一些数字,因此数组的长度会有所不同。
correctOrderArray.push(randomArrayGenerated.sort(function(x, y){return x-y})); - 添加正确的OrderArray,随机数组中的元素,但已排序。
userArray.push(userOrder); - 其中 userOrder 是一个从输入中获取值的变量。
如果 userArray.length == correctOrderArray.length - 我想使用 correctOrderArray.find(function(a, b){ return a !== userArray[b] }) 比较这些数组
为什么不工作? (Uncaught TypeError: undefined is not a function)
【问题讨论】:
-
你不能用 for 循环轻松做到这一点吗?
-
你需要确认他们都有所有的数字,还是你只想知道第一个数字在错误的位置?
-
我需要检查与排序数组相比,用户数组中是否存在错误定位的数字,并从用户数组返回错误位置的数字(不是位置)。就像上面的示例一样,如果我们将 a 与 b 进行比较,其中 b 是用户数组,我只需要返回 5,4 或 4,5 与顺序无关,因为您可以看到,如果您与数组进行比较,则 4 和 5 会切换。
标签: javascript jquery arrays