Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 排序字符串数组,其中的元素如;名称:Score";_Javascript_Jquery_Sorting_Web - Fatal编程技术网

Javascript 排序字符串数组,其中的元素如;名称:Score";

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 + ":" +

我有一个存储在LocalStorage中的字符串数组。此数组的每个元素都是一个字符串“Name:Score”。我需要按分数对这个数组进行排序,以构建一个top。我怎样才能更有效地做到这一点? 也许我应该存储玩家的统计数据,而不是像数组那样,以便更容易地排序

到目前为止,我的代码是:

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}]