Javascript 分拣功能在IE 11中不起作用

Javascript 分拣功能在IE 11中不起作用,javascript,internet-explorer,Javascript,Internet Explorer,我有一个非常简单的排序函数,它通过索引对对象进行排序: panoramas.sort((a, b) => { if (a.index > b.index) return 1 }) 输入: [ { index: 0 }, { index: 2 }, { index: 1 } ] 输出: [ { index: 1 }, { index: 2 }, { index: 3 } ] 该功能在Chrome和Firefox中工作,但在IE中不起作用(数组根本没有被

我有一个非常简单的排序函数,它通过
索引对对象进行排序

panoramas.sort((a, b) => {
  if (a.index > b.index) return 1
})
输入:

[
  { index: 0 },
  { index: 2 },
  { index: 1 }
]
输出:

[
  { index: 1 },
  { index: 2 },
  { index: 3 }
]
该功能在Chrome和Firefox中工作,但在IE中不起作用(数组根本没有被排序)

我的功能有问题吗

排序函数应该为排序返回-1、0或1


对于@teemu指出的IE11不支持箭头函数的情况,您必须使用函数表达式:


排序函数应该为排序返回-1、0或1


对于@teemu指出的IE11不支持箭头函数的情况,您必须使用函数表达式:



我想它不会排序,因为在
a.index@MartinNyolt的情况下,函数没有显式的返回值。我应该如何更改代码来反映这一点?请参阅。
panoramas.sort((a,b)=>a.index-b.index)
您的意思是IE更改对象属性的值吗?我的意思是,示例代码肯定不会在任何浏览器中对数组进行排序。另外请注意,IE不支持ES6箭头函数。我想它不会排序,因为您的函数在
a.index@martinyolt的情况下没有显式的返回值。我应该如何更改代码以反映这一点?请参见。
panoramas.sort((a,b)=>a.index-b.index)
您的意思是IE更改了对象属性的值吗?我的意思是,示例代码肯定不会在任何浏览器中对数组进行排序。还请注意,IE不支持ES6箭头函数。
返回a.index-b.index
更简洁。thnx@MartinNyolt。我有详细的解决方案,因为我认为返回a更容易理解。index-b.index更简洁。thnx@MartinNyolt。有详细的解决方案,因为我认为它会更容易理解
// Your function tests for 'a.index > b.index'
// but it's missing the other cases, returning false (or 0)

panoramas.sort((a, b) => {
  if (a.index > b.index) return 1;
  if (a.index < b.index) return -1;
  return 0;
})
panoramas.sort((a, b) => {
   return a.index - b.index; 
   // but make sure only numbers are passed (to avoid NaN)
})
panoramas.sort(function(a, b) {
  return a.index - b.index; 
});