天天看點

IOS系統的h5頁面排序失效,IOS頁面數組按時間排序

IOS系統的h5頁面排序失效,IOS頁面數組按時間排序

原因自行百度,這裡直接給出方法,方法并不是最佳的,湊合着用,有最佳的方法就可以發在評論區。

// 排序方法
		//sortby為true時是正序,sortby為 false時是倒序
           function sortMethod(arr,sortby) {
                    for (i = 0; i < arr.length - 1; i++) {
                        for (j = i + 1; j < arr.length; j++) {
                                if (sortby?arr[i] > arr[j]:arr[i]< arr[j]) {
                                    var a = 0;
                                    a = arr[i];
                                    arr[i] = arr[j];
                                    arr[j] = a;
                                }
                        }
                    }
                    return arr;
                }
           

下面是我在項目裡遇到的問題,就是一個json,裡面的每一項有一個時間,按照時間來排序。我一開始想着sort,但是ios失效了,于是就自己手寫方法,後面又遇到了一個問題 Date.parse()的問題。在IOS中,Date.parse()的格式不能是 2020-03-26 02:28:14(這個格式安卓可以),就隻能改成能讓IOS識别也能讓安卓識别的2020/03/26 02:28:14 ,附上正則

time.replace(/-/g, '/')
           

json按時間排序的代碼:

function sortMethod(arr,sortby) {
                    for (i = 0; i < arr.length - 1; i++) {
                        for (j = i + 1; j < arr.length; j++) {
                                if (sortby?Date.parse(array[i].time.replace(/-/g, '/')) > Date.parse(array[j].time
                                        .replace(/-/g, '/')):Date.parse(array[i].time.replace(/-/g, '/')) < Date.parse(array[j].time
                                        .replace(/-/g, '/'))) {
                                    var a = 0;
                                    a = arr[i];
                                    arr[i] = arr[j];
                                    arr[j] = a;
                                }
                        }
                    }
                    return arr;
                }
                
           

如果有更好的建議或意見,請留言,謝謝!