前几天用到了冒泡排序的方法,现在整理了一下代码。我的需求是比较数组数据中的某一个字段中的值,而这个字段是有字母有数字,所以需要先匹配出来数字,然后截取出来数字,然后进行比较。我的数据是数组对象的格式,我需要对airport字段进行排序。
源码地址:https://github.com/dreamITGirl/VueProgect/tree/master/project-demo/src/components/Sort
首先拿到需求后,应该先将airport字段中的数字单独放在一个属性中,然后再根据这个属性进行排序。这个是我的思路。
代码如下:
matchData(data){//将数字的位置找出来,然后重新赋给新的属性 for (let i = 0; i < data.length; i++) { let index = data[i].airport.match(/[0-9]/).index data[i].position = Number(data[i].airport.substr(index,)) } }, bubbleSort(data){//冒泡排序 for (let i = 0; i < data.length; i++) { for (let j = 0; j < data.length -1 -i; j++) { if (data[j].position > data[j+1].position ) { let temp = data[j] data[j] = data[j+1] data[j+1] = temp } } } }