Mar*_*arc 18 javascript arrays safari
任何人都知道为什么Safari 5(Windows 7)无法对对象数组进行排序?
var arr = [{a:1},{a:3},{a:2}];
console.log(arr[0].a+','+arr[1].a+','+arr[2].a);
arr.sort(function(a,b){return a.a > b.a;});
console.log(arr[0].a+','+arr[1].a+','+arr[2].a);
Run Code Online (Sandbox Code Playgroud)
控制台结果应该是
1,3,2
1,2,3
Run Code Online (Sandbox Code Playgroud)
这在FF和IE中工作正常,但Safari返回:
1,3,2
1,3,2
Run Code Online (Sandbox Code Playgroud)
cas*_*nca 47
你的比较功能是错误的:
function(a,b){return a.a > b.a;}
Run Code Online (Sandbox Code Playgroud)
根据a <b,a = b或a> b,该函数应返回负数,零或正数.您的函数返回一个布尔值,指示是否a> b.尝试类似的东西:
function(a,b){return a.a - b.a;}
Run Code Online (Sandbox Code Playgroud)