所以我试图在 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 个元素进行排序,显示结果,然后考虑其余数据)。
RISEBY
TA贡献1856条经验 获得超5个赞
使用 Javascript 的 Array.prototype.sort() 对 170 个项目进行排序应该不会超过几个毫秒,所以它可能是一个渲染问题。
将这种排序的逻辑与渲染分开是一个很好的做法,以便可以对其进行单元测试和测量。
添加回答
举报
0/150
提交
取消