knockout.js 实现嵌套列表

JavaScript013

knockout.js 实现嵌套列表,第1张

不要像这样使用重复的字符串连接:s += item ,因为它的时间效率是O(n^2)。

使用StringBuilder或者StringBuffer时,可以使用append()方法添加文本和使用toString()方法去获取连接起来的整个文本。

优先使用StringBuilder,因为它更快。StringBuffer的所有方法都是同步的,而你通常不需要同步的方法。其实在实际的项目中有很少地方需要考虑到同步问题。

我在为公司的旧项目添加功能的时候遇到了这么一个问题,由于旧项目使用的是比较旧的 jquery框架,而我新加的功能模块使用的是vue + elementui,在使用element 的级联组件的时候发现旧有的接口返回的地址数据都是平铺的,这就跟element 的组建的默认的数据嵌套结构不一致了,因此前端这边就需要做一下数据结构的转换。

一开始我的想法是使用递归的方式一遍一遍的遍历数组然后重组成嵌套的对象,后来我发现这样的遍历3000多条数据效率太低了,很容易就卡死的页面。而经过了后端大佬的额指点后换了另一种方法,效率马上就翻了好几倍。