Javascript JSON数组排序

Javascript JSON数组排序,javascript,json,sorting,multidimensional-array,Javascript,Json,Sorting,Multidimensional Array,我正在尝试为减肥挑战应用程序构建一个自定义排序函数,当用户尝试单击第1周对下面的JSON格式数据进行排序时,结果似乎不正确。如果你能用我在这里缺少的东西来指导我,我将不胜感激。如果功能正常,我会将第一周改为另一周 var数组=[ { “用户”:“诺亚”, “weeklyPercentageChange”:[“10.37”、“-3.75”、“-2.21”、“-1.85”、“-1.68”、“-1.21”、“-1.41”、“-1.17”、“-0.47”、“-1.64”、“-23.36”] }, {

我正在尝试为减肥挑战应用程序构建一个自定义排序函数,当用户尝试单击第1周对下面的JSON格式数据进行排序时,结果似乎不正确。如果你能用我在这里缺少的东西来指导我,我将不胜感激。如果功能正常,我会将第一周改为另一周

var数组=[
{
“用户”:“诺亚”,
“weeklyPercentageChange”:[“10.37”、“-3.75”、“-2.21”、“-1.85”、“-1.68”、“-1.21”、“-1.41”、“-1.17”、“-0.47”、“-1.64”、“-23.36”]
},
{
“用户”:“利亚姆”,
“weeklyPercentageChange”:[“-4.49”、“-2.61”、“-1.19”、“-0.36”、“-1.39”、“-1.29”、“-0.44”、“-0.22”、“-0.67”、“-0.33”、“-12.53”]
},
{
“用户”:“梅森”,
“weeklyPercentageChange:[“3.22”、“-2.40”、“-0.35”、“-1.80”、“-0.25”、“-0.66”、“-2.42”、“0.00”、“1.71”、“-0.52”、“-9.00”]
},
{
“用户”:“Ethan”,
“weeklyPercentageChange”:[“-1.31”,“0.00”,“-1.75”,“-0.78”,“0.61”,“-1.79”,“0.80”,“0.00”,“0.00”,“0.38”,“-3.75”]
},
{
“用户”:“亚历山大”,
“weeklyPercentageChange”:[“-1.26”、“0.00”、“-1.48”、“-1.50”、“-0.07”、“-1.66”、“-0.53”、“-0.20”、“0.00”、“-0.86”、“-7.42”]
},
{
“用户”:“Maria”,
“weeklyPercentageChange”:[“-1.10”、“-1.90”、“-0.11”、“-0.63”、“2.52”、“-1.01”、“0.06”、“-0.06”、“-0.06”、“1.38”、“-0.94”]
},
{
“用户”:“保罗”,
“weeklyPercentageChange:[“1.08”、“-2.33”、“-0.10”、“-1.17”、“1.83”、“-1.70”、“-1.13”、“-0.19”、“0.00”、“0.00”、“-5.84”]
},
{
“用户”:“史蒂文”,
“weeklyPercentageChange”:[“-0.77”、“-2.93”、“-0.19”、“-1.22”、“-0.48”、“-1.39”、“-1.27”、“0.00”、“-0.23”、“-0.91”、“-8.84”]
},
{
“用户”:“爱德华”,
“weeklyPercentageChange”:[“-0.71”、“-1.73”、“-1.46”、“-0.17”、“0.42”、“-1.23”、“-1.26”、“1.47”、“0.59”、“-2.81”、“-3.98”]
},
{
“用户”:“本杰明”,
“weeklyPercentageChange:[“0.56”、“-0.28”、“0.80”、“-0.94”、“0.00”、“0.90”、“-0.05”、“1.17”、“-1.87”、“0.98”、“0.14”]
},
{
“用户”:“扎卡里”,
“weeklyPercentageChange”:[“-0.47”、“-1.29”、“0.48”、“-1.59”、“1.37”、“-2.65”、“-0.24”、“0.66”、“0.05”、“0.24”、“-3.41”]
},
{
“用户”:“奥斯汀”,
“weeklyPercentageChange”:[“-0.33”,“0.00”,“-3.05”,“-2.02”,“0.80”,“-1.48”,“1.58”,“-0.43”,“0.87”,“-1.90”,“-5.87”]
},
{
“用户”:“约旦”,
“weeklyPercentageChange:[“0.06”、“-2.18”、“-2.17”、“-0.56”、“0.84”、“-0.67”、“0.45”、“0.39”、“0.28”、“0.06”、“0.67”]
},
{
“用户”:“加布里埃尔”,
“weeklyPercentageChange:[“0.00”、“0.00”、“-0.12”、“-0.81”、“0.25”、“0.00”、“0.00”、“0.00”、“0.00”、“0.00”、“0.68”]
},
{
“用户”:“韦恩”,
“weeklyPercentageChange:[“0.20”、“-3.45”、“0.35”、“0.49”、“0.56”、“0.00”、“-0.61”、“0.54”、“0.54”、“-0.41”、“-1.83”]
},
{
“用户”:“威利”,
“weeklyPercentageChange”:[“-0.83”、“-3.21”、“0.71”、“0.00”、“-1.05”、“0.35”、“0.07”、“0.14”、“-0.07”、“-1.45”、“-3.72”]
},
{
“用户”:“弗兰克”,
“weeklyPercentageChange”:[“0.00”、“0.00”、“-3.04”、“0.88”、“1.37”、“-0.41”、“-1.21”、“2.10”、“0.00”、“-0.58”、“-0.94”]
}
];
函数GetSortOrder(prop){
返回函数(a,b){
如果(a[prop]>b[prop]){
返回1;
}否则,如果(a[prop]”;
for(数组中的变量项){
document.write(“
”+数组[item]。用户); } */ sort(GetSortOrder(“weeklyPercentageChange[0]”); 文档。写入(“

已排序的每周百分比变化:
”; for(数组中的变量项){ document.write(“
”+数组[item]。weeklyPercentageChange[0]); }
GetSortOrder(“weeklyPercentageChange[0]”
将导致查找文本属性名
“weeklyPercentageChange[0]”
,也就是说,如果对象定义为

{
  user: 'name',
  'weeklyPercentageChange[0]': 55
}
这不是你所拥有的,这就是为什么事情没有按预期进行

对于导航嵌套对象或数组来查找要排序的值的一般解决方案,请考虑传递回调,该回调导航到要比较的嵌套值;这里,

obj=>obj.weeklyPercentageChange[0]

您还可以通过简单地返回值之间的差异,使代码更加简洁:

[用户:“10.37”、“3.75”、“2.21”、“1.21.21”、“1.1.85”、“1.68”、“1.68”、“1.68”、“1.68”、“1.68”、“1.21”、“1.21”、“1.21”、“1.21”、“1.21”、“1.41”、“1.41”、“1.41”、“1.41”、“1.17”、“0.17”、“0.47”、“1.1.64”、“1.64”、“3.23.36”、“3.36”},,[用户:[用户:“利亚姆,”用户:“利亚姆”,周际际。“利亚姆”,周的上述上述上述上述天气变化变化,这些数据包括包括包括包括包括包括包括包括用户:“利亚姆”,周,周内,这些政府政府部门,周服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服服,周,这些变化变化变化,周.53“]},{用户:“Mason”,weeklyPercentageChange:[“3.22”、“-2.40”、“0.35”、“-1.80”、“-0.25”,,,,,,,0.00”,“1.71“,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,9.00.00.00 00万,}},,,,{,{,{用户::,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[用户:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“-7.42”]},{用户:“Maria”,weeklyPercentageChange:[“-1.10”,”-1.90“、1.90”、“0.90”、“1.90”、“1.90”、“1.90”、“1.90”、“1.90”、“0.06”、“0.06”、“0.06”、“1.06”、“0.06”、“1.06”、“1.38”、“1.38”、“0.94”},{用户:保罗;用户:用户:用户:保保保保保保保保保保罗用户;周内;周内包括包括包括包括包括包括包括包括上述上述各方面在内在内在内在内在内的用户;周包括包括包括包括上述的。这些包括包括包括包括包括包括:1.11 11 11 11 11 11;7;7;7;7;7;5.11;5.11;5.11;5.11;1.11;5.11’,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“,“-1.39”,“-1.27”,“0.00”,“-0.23”,“-0.91”,“-8.84”]},{用户:“Edward”1.73”、“1.46”、“0.42”、“0.42”、“0.42”、“0.42”、“1.11”、“1.23”、“1.23”、“1.23”、“1.26”、“1.26”、“1.47”、“0.47”、“0.47”、“0.59”、“2.47”、“1.47”、“0.59”、“2.81”、“2.81”、“2.81”、“2.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.81”、“3.98”]}},},{},,,{,},},,{用户用户用户:本本本杰明用户:便便便便便便便民民民民民民民,周利,这一个用户,周例例例例会,周末,周末,周末,周的印刷印刷印刷这些这些这些包括包括包括包括包括包括包括包括包括包括包括包括包括包括包括包括包括包括包括1.59、1.37、-2.65、-0.24、0.66、0.05、0.24[用户:“奥斯汀”,“0.00”,“3.05”,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,[用户:“奥斯汀:“奥斯汀”,“奥斯汀”,周内的工作环境变化变化:变化:[“““-0.0.0.0.33”,“0.33”,“0.33”,“0.33”,“0.33”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.00”,“0.0.0.0.00”,“0.0.00“,”-0.12“,“-0.81”,“0.25”,“0.00”,“0.00”,“0.00”、“0.00”、“0.00”、“-0.68”],{用户:“Wayne”,weeklyPercentageChange:[“0.20”、“-3.45”、“0.35”、“0.49”、“0.56”、“0.00”、“-0.61”、“0.54”、“0.54”、“-0.41”、“-1.8