2017-08-17 34 views
-2

数字でarray.lengthを並べ替えるにはどうすればよいですか? this imageのマイナンバージェネレータは、降順で並べ替える必要があります。array.lengthを使用して新しい配列を作成する

プッシュ機能で新しい配列を作成しようとしました。私のコードは次の通りです:

var newArray = []; 
newArray.push(myArray.length); 

残念ながら、これは動作しません。私はjavascriptの初心者で、私は別の解決策を見つけることができませんでした。

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>Document</title> 
 
\t <link rel="stylesheet" type="text/css" href="style.css"> 
 
\t <script src="hack.js" defer></script> 
 
\t </head> 
 
<body> 
 
\t <div id="demo" style="width: 500px;border: 1px solid black;"></div> 
 
    <script> 
 
    var myNumbers = ''; 
 
for (var i = 10; i <= 40; i++) { 
 
\t var myArray = []; 
 
\t for (var j = 2; j < i; j++) { 
 
\t \t if (i % j == 0) { 
 
\t \t \t myArray.push(j); \t 
 
\t \t } 
 
\t } 
 
\t myNumbers += "<p>" + i + " number of generators = " + myArray.length + '</p>'; 
 

 
} 
 

 
document.getElementById("demo").innerHTML = myNumbers; 
 
    </script> 
 
</body> 
 
</html>

+0

は、各インデックスは '[数、発電]'された状態で多次元配列を作成し、その後だけのArray.sortが(関数(B){[返す '使用することができ1] -b [1]}) 'あなたの結果を出力します。 –

+0

[JavaScript配列クローニング](https://stackoverflow.com/questions/27464864/javascript-array-cloning)の重複の可能性あり –

答えて

1
var myNumbers = []; 
for (var i = 10; i <= 40; i++) { 
    var myArray = []; 
    for (var j = 2; j < i; j++) { 
     if (i % j == 0) { 
      myArray.push(j);  
     } 
    } 
    var value = { int: i, length: myArray.length, html:"<p>" + i + " number of generators = " + myArray.length + '</p>' } 
    myNumbers.push(value); 

} 
myNumbers.sort(function(a, b){ 
    return b.length - a.length; 
}); 

document.getElementById("demo").innerHTML = myNumbers.map(function(d) { return d['html']; }).join('') 
+0

これは私がしたいことではありません...写真の右側に、私は私はほしいと思う方法 –

+0

ああ。 DIdは写真を見ません。外部リンクの代わりに質問にアップロードすることができます。 –

0

最初のあなたは、オブジェクトの配列に番号と発電機数のマッピングを格納することができます。次に、この配列をコンパレータ関数を使ってソートすることができます。この配列の反復は、このソートされた配列に基づいて要素を追加します。

<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
\t <meta charset="UTF-8"> 
 
\t <title>Document</title> 
 
\t <link rel="stylesheet" type="text/css" href="style.css"> 
 
\t <script src="hack.js" defer></script> 
 
\t </head> 
 
<body> 
 
\t <div id="demo" style="width: 500px;border: 1px solid black;"></div> 
 
    <script> 
 
    var myNumbers = '', myArray = []; 
 
for (var i = 10; i <= 40; i++) { 
 
    var count = 0; 
 
\t for (var j = 2; j < i; j++) { 
 
\t \t if (i % j == 0) { 
 
\t \t \t count++; 
 
\t \t } 
 
\t } 
 
    myArray.push({number: i, generators: count}); 
 
} 
 
myArray.sort(function(a,b){ 
 
    return b.generators - a.generators; 
 
}); 
 
for(var i=0; i<myArray.length; i++) 
 
    myNumbers += "<p>" + myArray[i].number + " number of generators = " + myArray[i].generators + '</p>'; 
 

 
document.getElementById("demo").innerHTML = myNumbers; 
 
    </script> 
 
</body> 
 
</html>

関連する問題