got*_*tqn 0 javascript sorting opera internet-explorer
我试图通过属性对对象进行排序.我的功能在Opera和IE上有问题.直到现在,我已经在这个阶段调试了Opera的问题:
在控制台中传递此代码,然后按shift + enter.
var DataArray=["Other","Attitude","Attitude","Delivery/timings","General Performance","Personal Planning","Other"]
DataArray=DataArray.sort(function(a,b)
{
return a<b;
});
JSON.stringify(DataArray);
Run Code Online (Sandbox Code Playgroud)你应该得到这样的正确结果:
["个人计划","其他","其他","一般表现","交付/时间","态度","态度"]
现在以这种方式改变排序函数a> b,然后按Enter + shift来执行它.
var DataArray=["Other","Attitude","Attitude","Delivery/timings","General Performance","Personal Planning","Other"]
DataArray=DataArray.sort(function(a,b)
{
return a>b;
});
JSON.stringify(DataArray);
Run Code Online (Sandbox Code Playgroud)我的结果是:
["态度","交付/时间","态度","一般表现","其他","其他","个人计划"]
注意第一个,第二个和第三个值?发生了什么?
如果你在控制台"Attitude"="Attitude"中执行它,它返回true ...
有任何想法吗?
提前致谢.
编辑:与IE的部分:
码:
var DataArray=['Other','Attitude','Attitude','Delivery/timings','General Performance','Personal Planning','Other'];
DataArray=DataArray.sort(function(a,b)
{
return a<b;
});
prompt('',DataArray);
Run Code Online (Sandbox Code Playgroud)
结果(正确):个人计划,其他,其他,一般表现,态度,态度,交付/时间
码:
var DataArray = ['其他','态度','态度','交付/时间','一般表现','个人计划','其他'];
DataArray=DataArray.sort(function(a,b)
{
return a>b;
});
prompt('',DataArray);
Run Code Online (Sandbox Code Playgroud)
结果(不正确):态度,态度,其他,交付/时间,一般表现,其他,个人计划
解:
sortableArray=sortableArray.sort(function(a,b)
{
if(a.Category>b.Category)
{
return 1;
}
if(a.Category<b.Category)
{
return -1;
}
return 0;
});
Run Code Online (Sandbox Code Playgroud)
要按降序排序,数据使用reverse()函数.
感谢您的帮助.特别是@nnnnnn
这对任何特定浏览器都不是问题,没有阅读.sort()功能文档是一个问题.你传递给的回调.sort()不应该返回一个布尔值,它应该返回一个数字:
| 归档时间: |
|
| 查看次数: |
912 次 |
| 最近记录: |