Javascript 排序字符串数组,其中的元素如;名称:Score";
我有一个存储在LocalStorage中的字符串数组。此数组的每个元素都是一个字符串“Name:Score”。我需要按分数对这个数组进行排序,以构建一个top。我怎样才能更有效地做到这一点? 也许我应该存储玩家的统计数据,而不是像数组那样,以便更容易地排序 到目前为止,我的代码是:Javascript 排序字符串数组,其中的元素如;名称:Score";,javascript,jquery,sorting,web,Javascript,Jquery,Sorting,Web,我有一个存储在LocalStorage中的字符串数组。此数组的每个元素都是一个字符串“Name:Score”。我需要按分数对这个数组进行排序,以构建一个top。我怎样才能更有效地做到这一点? 也许我应该存储玩家的统计数据,而不是像数组那样,以便更容易地排序 到目前为止,我的代码是: function saveResult() { let userName = $("#input-user-name").val(); let userStat = userName + ":" +
function saveResult() {
let userName = $("#input-user-name").val();
let userStat = userName + ":" + playerScore;
results = localStorage.getItem("gameResults");
if (results === null) {
localStorage.setItem("gameResults", JSON.stringify([userStat]));
} else {
results = JSON.parse(localStorage.getItem("gameResults"));
results.push(userStat); //sort
localStorage.setItem("gameResults", JSON.stringify(results));
}
updateStatTable();
}
使用
sort()
非常简单:
var-arr=['John:32','Jack:45','Mary:25']
arr.sort((a,b)=>a.split(“:”)[1] console.log(arr)
使用sort()非常简单。
:
var-arr=['John:32','Jack:45','Mary:25']
arr.sort((a,b)=>a.split(“:”)[1] console.log(arr)
可能构建一个真实的对象数组:
var users = yourArray.map(str => {
let [name,score] = str.split(":");
return {name,score:+score};
});
因此,数组如下所示:
[
{
name:"John",
score:0
}
...
]
现在,您可以简单地排序:
users.sort((a,b)=>a.score - b.score);
可能构建一个真实的对象数组:
var users = yourArray.map(str => {
let [name,score] = str.split(":");
return {name,score:+score};
});
因此,数组如下所示:
[
{
name:"John",
score:0
}
...
]
现在,您可以简单地排序:
users.sort((a,b)=>a.score - b.score);
var-player1;
var-player2;
var-player3;
var参与者;
函数sortbyScore(x,y){
if(parseInt(x.score)parseInt(y.score)){
返回1;
}
否则{
返回0;
}
}
函数sortPlayers(){
玩家。排序(sortbyScore)
显示播放器(播放器)
}
功能显示播放器(arr){
$(“#playersDiv”).html(“”)
var tableString=“播放器名称核心”
对于(变量i=0;i
var-player1;
var-player2;
var-player3;
var参与者;
函数sortbyScore(x,y){
if(parseInt(x.score)parseInt(y.score)){
返回1;
}
否则{
返回0;
}
}
函数sortPlayers(){
玩家。排序(sortbyScore)
显示播放器(播放器)
}
功能显示播放器(arr){
$(“#playersDiv”).html(“”)
var tableString=“播放器名称核心”
对于(var i=0;iso)本地存储中的字符串是什么样子的?能否显示现有代码?[“John:0”、“Kek:17”、“Arnold:1”]请对您的问题使用编辑
按钮。如果您最终要通过在:
处拆分字符串来使用注释中的代码,则注释中的代码是无法访问的-为什么还要用这种方式保存它们呢?将它们保存为对象数组:[{name:'John',score:32}]
那么字符串在本地存储中是什么样子的呢?能否显示您现有的代码?[“John:0”、“Kek:17”、“Arnold:1”]请对您的问题使用编辑
按钮。如果您最终要通过在:
处拆分字符串来使用注释中的代码,则注释中的代码是不可访问的-为什么还要用这种方式保存它们呢?将它们保存为对象数组:[{name:'John',score:32}]