とあるゲームを作成中で、配列の中に "point"と"name"というキーを持ったユーザーごとの連想配列を追加して、ランキングとして表示しようとしています。
ローカルストレイジから得点と名前を取得し、それを元に連想配列を作ります。
そしてそれを "users" という配列にゲームごとに追加し、最後にpointを元にソート、表示、という流れを作りたいのですが、2回目行こうの代入により全て同じ名前、得点になってしまいます。
改善するべきとこはどこでしょうか?
よろしくお願いいたします。
js
1var users = []; 2var pArray = new Array(); 3 4 var rk = document.getElementById("rankPlace"); 5 var strgName = window.localStorage.getItem("player"); 6 var getP = document.getElementById("rankPlace"); 7 getP.innerHTML = ""; 8 9 //連想配列を作り、それを配列に追加 10 pArray["point"] = a_count; 11 pArray["name"] = strgName; 12 users.push(pArray); 13 14 15 //ソート 16 users.sort(function(a,b){ 17 return (a.point < b.point) ? -1 : 1; 18 }); 19 20 21 for (var i = 0; i <= pArray.length - 1; i++) { 22 var newRank = "<p class='ranking'>" + (i + 1) + ". Points : " + users[i].point + " : " + users[i].name + "</p>"; 23 rk.insertAdjacentHTML( 24 "beforeend", 25 newRank 26 ); 27
おそらく問題は代入してる部分?だと思うのですが、私の理解としては
ゲーム1人目
pArray(連想配列) <- 新しいユーザの情報を突っ込む
users <- pArray(ユーザ1の情報)を格納、即ち
users = [
{user[0]の情報}
];
ゲーム2人目
pArray(連想配列) <- 次のユーザの情報を突っ込む(pArrayに上書き)
users <- pArray(ユーザ2の情報)を格納(新しい連想配列を追加)、即ち
users = [
{user[0]の情報},
{user[1]の情報}
];
なんですが、違うのでしょうか?

回答2件
あなたの回答
tips
プレビュー