![](/img/trans.png)
[英]I tried to make a simple fun system with increasing and decreasing numbers with input, but it doesnt work
[英]I can't sort numbers in an array (tried everything that was written here, stil doesnt work)
我一直在用JS做一個小游戲,當我有一個包含4個數字的數組(其中一個是正確的結果,其他三個是隨機的)時,我明白了。 我需要對它們進行排序(升序),但似乎沒有任何效果。 我嘗試了此處提到的E6和E2015函數,但是什么也沒有。 我將包括我的代碼以及來自控制台的代碼,以便您看到。 您知道如何處理它或問題在哪里? 感謝您的時間。
//this is the code i have:
var rnum1 = generateRandomNumber1 ();
var rnum2 = generateRandomNumber2 ();
var rnums = [rnum1, rnum2];
var rnumsSort = rnums.sort(function(a, b){return b-a});
var data= generateRandomOperatorAndCorrectResult(rnumsSort[0],rnumsSort[1]);
//data=["+", [5]]
var operator=data[0];
var corResult = data[1][0][0];
var ranResult =[data[1][0][1],data[1][0][2],data[1][0][3]];
var allResults = data[1];
var sortAllResults = allResults.sort(function(a,b){
return a - b});
var mes=alert(sortAllResults);
//I'm sure all of my function are working because it alerts the actual 4 numbers in the array (var allResults = data[1]) but it doesnt do the sort method
function generateRandomOperatorAndCorrectResult (num1, num2) {
var operators = [{
sign: "+",
method: function(rnum1,rnum2){ return rnum1 + rnum2; } },
{
sign: "*",
method: function(rnum1,rnum2){ return rnum1 * rnum2; } },
{
sign: "-",
method: function(rnum1,rnum2){ return rnum1 - rnum2; }
}];
var results = [];
var selectedOperator = Math.floor(Math.random()*operators.length);
var randomOperator = operators[selectedOperator].sign;
var correctResult = (operators[selectedOperator].method(num1, num2)); //pass the numbers to the methods
results.push(correctResult);
var randomResult = generateRandomResults(3);
var result = results.concat(randomResult);
return [randomOperator, [result]];
}
問題是您要對數組數組進行排序。 當聲明其他變量時,將如下所示:
data[1][0][0]
這意味着data
是一個數組,包含至少一個數組,其中包含至少一個數組,其中包含您的數據。
但是,在聲明allResults
(要排序的數組)時,將其設置為上一級-將其設置為等於包含包含數據的數組的數組。 因此,您實際上是在對數組進行排序。
要解決此問題,只需像這樣聲明allResults
:
var allResults = data[1][0];
然后,您將比較數字,而不是數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.