摘要:中的使用一現在我們討論第二種情況的排序。里面的數據就是已領取的項,所以我們排序后的結果為,,,,,,,,,。首先我們為寫一個方法,用來判斷所傳數據是否存在于中然后吧中的值傳入里面就行了完
js中sort的使用(一)
現在我們討論第二種情況的排序。
第一種情況是整個數組都是服務端給過來的,所以里面的value值也是服務端發的。那么,如果服務端只發id給你呢?
這種情況就是,你現在有一個數組arr1,服務端給你一個數組比如arr2。
let arr1 = [ {id:1,name:"a"}, {id:2,name:"b"}, {id:3,name:"c"}, {id:4,name:"d"}, {id:5,name:"e"}, {id:6,name:"f"}, {id:7,name:"g"}, {id:8,name:"h"}, {id:9,name:"i"}, {id:10,name:"j"} ]; let arr2 = [ {id:1}, {id:2}, {id:3}, {id:5} ];
arr2里面的數據就是已領取的項,所以我們排序后arr1的結果為:4,6,7,8,9,10,1,2,3,5。
那么我們只要判斷arr1里面的項的id有等于arr2里面的項的id的時候,就把arr1的那個項拋到數組的最后面就行了,所以:
let num = 0; for(let key in arr2) { for(let i = 0,l = arr1.length; i < l; i++) { if(arr1[i].id == arr2[key].id){ let str = arr1.splice(i,1); arr1.unshift(str[0]); arr1.push(str[0]); num ++; } } } arr1.splice(0,num)
哈哈,這種方法雖然也可以。但是不建議,就像第一章所說的,接下來我們來看看sort方法吧。
首先我們為arr2寫一個方法,用來判斷所傳數據是否存在于arr2中
function rank(val) { for(let key in arr2){ if(val == arr2[key].id){ return 1; } } return 0; }
然后吧arr1中id的值傳入rank()里面就行了
arr1.sort((a,b)=>{ if(rank(a.id) == 1 && rank(b.id) != 1){ return 1; }else if(rank(a.id) != 1 && rank(b.id) == 1){ return -1; } return 0; })
(完)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103552.html
摘要:返回表示保留該元素通過測試,則不保留。否則,的值在非嚴格模式下將是全局對象,嚴格模式下為。索引數組中正在處理的當前元素的索引。當執行回調函數時用作的值參考對象。是數組組所以要帶,用轉換為數值類型。 代碼塊: var aqiData = [ [北京, 90], [上海, 50], [福州, 10], [廣州, 50], [成都, 90], ...
摘要:字母排序默認排序運行結果數字排序中參數可以是方法函數,可以升序和降序輸出結果。數字排序升序,降序運行結果注意其中都是表示這個數組里面的元素,如果是則表示升序,如果是則表示降序。以上屬于個人總結,如果后期有什么補充會再次發布 數據排序這塊應該是每個程序員都會遇到的,而這篇文章主要是介紹js中sort排序如何使用得當,既然有現成的封裝的方法就用現成的,自己稍加修改就能完成,不需要再重新自己...
閱讀 3689·2021-10-13 09:40
閱讀 3149·2021-10-09 09:53
閱讀 3551·2021-09-26 09:46
閱讀 1848·2021-09-08 09:36
閱讀 4248·2021-09-02 09:46
閱讀 1314·2019-08-30 15:54
閱讀 3179·2019-08-30 15:44
閱讀 1023·2019-08-30 11:06