Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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使用字符串和int对二维数组进行排序_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript使用字符串和int对二维数组进行排序

Javascript使用字符串和int对二维数组进行排序,javascript,arrays,sorting,Javascript,Arrays,Sorting,结果 setItem('1526200226958',[1','completed','00:01:06:32','Mario,3.png',]); setItem('1526205223958',[1','completed','00:04:03:14','Toad,2.png',]); setItem('152620123958',[2','notCompleted','00:08:09:37','Princess,5.png',]); setItem('1526220323958',[12


结果
setItem('1526200226958',[1','completed','00:01:06:32','Mario,3.png',]);
setItem('1526205223958',[1','completed','00:04:03:14','Toad,2.png',]);
setItem('152620123958',[2','notCompleted','00:08:09:37','Princess,5.png',]);
setItem('1526220323958',[12',notCompleted','00:06:01:59','Luigi,4.png',]);
setItem('1526300323958',[7','notCompleted','00:04:34:37','Luigi,4.png',]);
setItem('1526600323958',[3','notCompleted','00:13:53:04','Luigi,4.png',]);
setItem('1526000253958',[1','notCompleted','00:04:02:20','Yoshi,1.png',]);
var test=新数组();
var i=0;
var pegsLeft;
var gameDone=“”;
for(本地存储中的var键){
如果(key!=“key”&&key!=“setItem”&&key!=“getItem”&&key!=“removietem”&&key!=“clear”&&key!=“length”&&key!=“board”){
test[i]=localStorage.getItem(key).split(',');
i++;
}
}
测试。排序(mySortingA);
函数mySortingA(a,b){
a=a[1]+a[0]+a[2];
b=b[1]+b[0]+b[2];
返回a==b?0:(a
您可以为同一索引的每个元素获取索引和比较结果。这适用于数字和字符串

var数组=[1',已完成,'00:01:06:32','Mario,3.png',][12','notCompleted','00:10:01:59','Luigi,4.png',][1','completed','00:04:03:14','Toad,2.png',][2','notCompleted','00:08:09:37','Princess,5.png',][12','notCompleted','00:06:01:59','Luigi,4.png',][24','completed','00:04:34:37','Luigi,4.png',',[3,'未完成','00:13:53:04','Luigi,4.png',],[1,'未完成','00:04:02:20','Yoshi,1.png',],[12,'未完成','00:01:59','Luigi,4.png',],[2,'完成','00:04:34:37','Luigi,4.png',];
array.sort(函数(a,b){
变量d;
[1,0,2]一些(i=>d=a[i]>b[i]| |-(a[i]

<代码>。作为控制台包装器{最大高度:100%!重要;顶部:0;}

如果连接字符串和整数,结果将是一个字符串。


当您创建自己的排序函数时,您将得到1、0或-1作为结果。首先比较您想要作为主要值的内容。如果第一次测试的结果为零,则说明情况相同。如果出现这种情况,您将对第二个值进行比较,并从函数返回1或-1作为结果。

当前连接的是e使用字符串表示数字,因此整个数组按字符串值排序。您需要分别检查每个值,如下所示:

var测试=[
[1,‘已完成’、‘00:01:06:32’、‘马里奥,3.png’,],
[12,'未完成','00:10:01:59','Luigi,4.png',],
[1,“已完成”,“00:04:03:14”,“蟾蜍,2.png,”,
[2,'未完成','00:08:09:37','Princess,5.png',],
[12,'未完成','00:06:01:59','Luigi,4.png',],
[24,'已完成','00:04:34:37','Luigi,4.png',],
[3,'未完成','00:13:53:04','Luigi,4.png',],
[1,‘未完成’、‘00:04:02:20’、‘Yoshi,1.png’,],
[12,'未完成','00:01:01:59','Luigi,4.png',],
[2,‘已完成’、‘00:04:34:37’、‘Luigi,4.png’,],
];
测试排序((a,b)=>{
//按第二个值排序
if(a[1]b[1]){
返回1;
}
//如果第二个值相等,则按数组的第一个值排序
if(a[0]b[0]){
返回1;
}
//如果第一个值相等,则按数组的第三个值排序
if(a[2]b[2]){
返回1;
}
//人人平等
返回0;
});

console.log(测试)
谢谢,但这段代码不适用于复制粘贴。我需要更改什么?你有数组进行排序吗?@Olivier,排序工作与接受的答案完全相同。谢谢,我能做些什么来解决我的问题?我需要使用localStorage进行此项目,如果可能,我不会为每个结果存储6个键和值。我理解我在mySorting中连接字符串和int,我是否应该制作类似mySorting2的东西,然后先按int排序,然后再按字符串排序?这非常有效:)非常感谢,你救了我一个晚上:)来自瑞士的问候