我的尝试:
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 i中我将randomArrayGenerated推入一些数字,因此数组的长度会有所不同。
correctOrderArray.push(randomArrayGenerated.sort(function(x, y){return x-y}));
- 在correctOrderArray中添加随机数组中的元素但已排序。
userArray.push(userOrder);
- 其中userOrder是一个从输入中获取值的变量。
IF userArray.length == correctOrderArray.length
- 我想使用correctOrderArray.find(function(a, b){ return a !== userArray[b] })
为什么不起作用? (未捕获的TypeError:undefined不是函数)
答案 0 :(得分:1)
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;
}
答案 1 :(得分:0)
它只是一个循环。
function checkArrays( arrA, arrB ){
for(var i = 0; i < arrA.length; i++) { if(arrA[i] !== arrB [i]) return arrB [i] };
}
如果您被允许使用ECMAScript 6
a.find(function(v, i){ return v !== d[i] })