當我需要比較兩個數組時,我在遊戲中陷入困境。兩個數組都包含數字。第一個數組按照用戶順序得到數字,第二個按數字排序。我嘗試實現的是:比較這些數組,並在用戶數組中找到錯誤的位置(如果存在)並將該數字返回到錯誤的位置。比較元素在第一個陣列中的位置與另一個陣列
我有什麼tryed:
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是一個函數。雖然在我推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] })
爲什麼不工作來比較這些陣列? (Uncaught TypeError:undefined不是函數)
不能與你一個循環做到這一點真的很容易嗎? – Rooster 2014-11-20 21:27:15
你是否需要確認他們都有數字,或者你只是想知道錯誤位置的第一個數字? – Shiala 2014-11-20 21:27:32
我需要檢查用戶數組中存在錯誤的定位數字與已排序的數組相比,並返回用戶數組中錯誤位置的數字(而不是位置)。就像在上面的例子中,如果我們比較a和b,其中b是用戶數組,我只需要返回5,4或4,5就不會影響順序因爲您可以看到,如果與數組進行比較,則會切換4和5。 – Proless 2014-11-20 21:32:47