Javascript快速排序二维数组

所以我试图在 React Native 中实现一种数据表视图。我真正需要做的就是对列进行排序。我试图排序的数据结构是这样的:


[

   [

     element,

     element,

     (9 elements per array)

   ],

   [

     element,

     element,

     (9 elements per array)

   ]

]

我在基本数组中总共有 170 多个数组,每个子数组有 9 个元素。


我已经能够基本上使用这种方法完成排序:


return items.sort(function(a,b) {

   return a[col].value > b[col].value ? 1:-1

})

我遇到的问题是排序需要一两秒钟。我没有注意到网络数据表的这种延迟,所以我想知道是否应该使用某种排序算法来进行更快的排序?我是否应该以不同的方式构建我的数据(尽管我通过拥有一组对象获得了类似的结果)?


四季花海
浏览 204回答 3
3回答

互换的青春

您可以将排序功能缩短为items.sort(function(a,b) {   return a[col].value - b[col].value;})但即便如此,您可能也不会看到速度有多大提升。如果您不希望数据经常更改,记忆可能有助于连续调用。在同一个屏幕上可以看到所有 170 个元素吗?如果没有,您可以考虑使用延迟加载(对前 30 个元素进行排序,显示结果,然后考虑其余数据)。

RISEBY

使用 Javascript 的 Array.prototype.sort() 对 170 个项目进行排序应该不会超过几个毫秒,所以它可能是一个渲染问题。将这种排序的逻辑与渲染分开是一个很好的做法,以便可以对其进行单元测试和测量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript