1、通过线上接口获取的数据并不是自己想要的排序状态。
需求分析: 数据LIST按歌手的名字的首字母来排序。
实现思路:js-pinyin 对数据进行聚合,并增加字段Findex,完成所需数组的创建。
先npm i js-pinyin -S
核心操作:jspy.getFullChars(item.singer_name)
或者:jspy.getFullChars(item.singer_name).toLowerCase()
2、遍历数组常用forEach,遍历对象的key值用Object.keys(obj)
3、如果不分对象进行排序,那么也可以直接对数组进行冒泡排序。(以Ascll码进行比较排序)
4、如果代码的构造具有重复性,我们可以抽出一个构建类
5、遍历的对象是无序对象的问题
可观察到虽然数据显示出来是有序的,但实际遍历是无序的。
对对象的直接遍历情况如下
思路如下:
1、将无序数组 通过设置26字母的key值 进行key值得分类。结果为一个对象
list: {
A: […],
B: […],
C: […],
…
}
2、将对象 通过for( key in list)遍历,
将排序过的对象的数组数据push入新数组,再对新数组的关键排序key值为基础进行重新排序。进而获得可以遍历的已排序数组(上图)
分析:核心思路:
1、数组(无序)变对象(字段无序,字段对应的数组有序)
2、对象(…)变数组(有序)