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;
}
如果有更好的建議或意見,請留言,謝謝!