我正在用JQuery / Javascript制作一个刽子手游戏,现在我想要一个高分表。我的想法是创建一个对象数组,但问题是,当我尝试将游戏结果存储为数组中的对象(playername:playerscore pair)时,我的文本输出是“object Object”而不是值。
var playerName;
var playerScore;
var gameResult = {};
var highscoreList = [];
function toHighscoreList() {
playerName = $('#nameTag').text(); // for example value "Henry"
playerScore = guessedWrong.length; // for example value 3
gameResult = {player: playerName, score: playerScore};
highscoreList[highscoreList.length] = gameResult;
$('#score1').text(highscoreList[0]);
};
我也试过这个版本的结果相同:
function toHighscoreList() {
playerName = $('#nameTag').text();
playerScore = guessedWrong.length;
gameResult = {player: playerName, score: playerScore};
localStorage.setItem('gameResult', JSON.stringify(gameResult));
$('#score1').text(JSON.parse(localStorage.getItem('gameResult')));
};
还有另一种方法来存储几个键:值对吗?我仍然希望高分列表很容易修改,所以我可以使用sort()方法进行排名,并用较高的分数替换较低的分数。
答案 0 :(得分:1)
使用“highscoreList [0]”,您将获得存储在数组中的第一个对象。您应该注意获取单个值(如highscoreList [0] .player或highscoreList [0] .score),格式化并打印它。
$( '#score1')文本(highscoreList [0]);
可以替换为
$('#score1')。text(highscoreList [0] .player +'得分'+ highscoreList [0] .score);
答案 1 :(得分:1)
您可能想要对高分排序,请尝试:
var playerName;
var playerScore;
var gameResult = {};
var highscoreList = [];
function toHighscoreList() {
playerName = $('#nameTag').text(); // for example value "Henry"
playerScore = guessedWrong.length; // for example value 3
gameResult = {player: playerName, score: playerScore};
highscoreList.push(gameResult);
highscoreList.sort(function(a,b) { return (b.score - a.score ) });
$('#score1').text(highscoreList[0].player + " - score: "+ highscoreList[0].score);
};