为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript快速排序二维数组

Javascript快速排序二维数组

四季花海 2021-06-02 19:14:22
所以我试图在 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})我遇到的问题是排序需要一两秒钟。我没有注意到网络数据表的这种延迟,所以我想知道是否应该使用某种排序算法来进行更快的排序?我是否应该以不同的方式构建我的数据(尽管我通过拥有一组对象获得了类似的结果)?
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您可以将排序功能缩短为


items.sort(function(a,b) {

   return a[col].value - b[col].value;

})

但即便如此,您可能也不会看到速度有多大提升。如果您不希望数据经常更改,记忆可能有助于连续调用。在同一个屏幕上可以看到所有 170 个元素吗?如果没有,您可以考虑使用延迟加载(对前 30 个元素进行排序,显示结果,然后考虑其余数据)。


查看完整回答
反对 回复 2021-06-03
?
RISEBY

TA贡献1856条经验 获得超5个赞

使用 Javascript 的 Array.prototype.sort() 对 170 个项目进行排序应该不会超过几个毫秒,所以它可能是一个渲染问题。

将这种排序的逻辑与渲染分开是一个很好的做法,以便可以对其进行单元测试和测量。


查看完整回答
反对 回复 2021-06-03
  • 3 回答
  • 0 关注
  • 203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信