JS 陣列排序範例
馬老師離開待了約十幾年的教學界,目前在外商科技公司擔任Senior Consultant的工作,原因當然很多,未來有空再慢慢發文章分享,剛好最近有點時間,怕以後忘記,把最近專案中用到的一些程式筆記下來,如果大家有需要,也可以參考使用,這一篇是關於Javascript陣列排序的部分。
通常若有較多的內容需要儲存,變數就沒有陣列來的好用,所以陣列是拿來儲存大量的資料時所使用的,且儲存在裡面的資料,還可以選擇經過排序之後再呈現至畫面上,例如:
var name = ["stanley", "jack", "anita" , "mary"]; name.sort() //依照字母排序 console.log(name); // 輸出 ["anita", "jack", "mary", "stanley"] names.reverse() //反轉陣列內容 console.log(name); //輸出 ["stanley", "mary", "jack", "anita"]
但若我們同時有多個陣列,但希望以其中之一的內容排序時,也可以同步更新到另外一個陣列,該如何處理呢?可以參考以下的方式:
var name = ["stanley", "jack", "anita" , "mary"]; var gender = ["male" , "male" , "female" , "female"]; var score = [30, 10, 40 , 80]; var ID = ["S1" , "S2" , "S3" , "S4"]; console.log("name : " + name + "; score : " + score + "; gender : " + gender + "; ID : " + ID); /* 排序前 name : stanley,jack,anita,mary; score : 30,10,40,80; gender : male,male,female,female; ID : S1,S2,S3,S4; */ var list = []; for (var i = 0; i < name.length; i++){ list.push({ 'name': name[i], 'score': score[i], 'gender': gender[i], 'ID': ID[i] }); } list.sort(function(a, b) { return ((a.name < b.name) ? -1 : ((a.name == b.name) ? 0 : 1)); }); for (var i = 0; i < list.length; i++) { name[i] = list[i].name; score[i] = list[i].score; gender[i] = list[i].gender; ID[i] = list[i].ID; } console.log("name : " + name + "; score : " + score + "; gender : " + gender + "; ID : " + ID); /* 排序後 name : anita,jack,mary,stanley; score : 40,10,80,30; gender : female,male,female,male; ID : S3,S2,S4,S1; */
若是希望按照分數排序,則可以將sort function 修改為下:
//score 由小到大 list.sort(function(a, b) { return a.score - b.score }); //score 由大到小 list.sort(function(a, b) { return b.score - a.score });
補充:
上述的排序內容均以英文和數字為主,若是遇到中文可使用localeCompare進行,而排序的方式是漢語拼音順序,以下為範例:
var arr = ["二","五","四","一","三"]; //漢語拼音:一[yi], 二[er], 三[san], 四[si], 五[wu] console.log("排序前:" + arr); // 排序前:二,五,四,一,三 arr.sort(function(a,b){ return a.localeCompare(b, 'zh'); //排序後:二,三,四,五,一 }); console.log("排序後:" + arr); var arr = ["中文","英語","法國話", "京片子", "中國"]; //中文[zhong wen], 英語[ying yu], 法國話[fa guo hua], 京片子[jing pian zi], 中國[zhong guo] console.log("排序前:" + arr); //排序前:中文,英語,法國話,京片子,中國 arr.sort(function(a,b){ return a.localeCompare(b, 'zh'); }); console.log("排序後:" + arr); //排序後:法國話,京片子,英語,中國,中文 var arr = ["中文","英语","法国话", "京片子", "中国"]; console.log("排序前:" + arr); //排序前:中文,英语,法国话,京片子,中国 arr.sort(function(a,b){ return a.localeCompare(b, 'zh'); }); console.log("排序後:" + arr); //排序後:法国话,京片子,英语,中国,中文
canada rx drugs online recommended canadian pharmacies canadian pharmacies not requiring prescription
provigil oral
modafinil pill modafinil us provigil tablet
india pharmacy india pharmacies online cheap generic drugs from india
purchase fildena generic – stromectol buy canada ivermectin 2ml
stromectol 3 mg tablets price buy stromectol online buy stromectol online
buy stromectol online prescribing stromectol stromectol price usa
generic propecia for cheap without precscription propecia prescription propecia drug
cephalexin 125mg price – buy cephalexin 250mg without prescription erythromycin 250mg brand
how can i order prescription drugs without a doctor prescription drugs without doctor approval buy prescription drugs online
dog antibiotics without vet prescription canadian online drugstore pain meds without written prescription
drug finasteride where to buy propecia online buy propecia
propecia pills fincar propecia women
order bactrim – trimethoprim without prescription cost sildenafil 150mg
best ed treatment top rated ed pills what is the best ed pill
ed prescription drugs prescription drugs without prior prescription comfortis without vet prescription
buy augmentin 375mg sale – overnight delivery cialis female cialis cvs
buy ed pills ed pills that really work best over the counter ed pills
ivermectin pour on for humans stromectol ireland ivermectin for fleas
ed medications over the counter best ed medication online ed drugs
oral prednisolone 40mg – tadalafil 5mg drug order tadalafil 40mg for sale
ivermectin 0.5% brand name ivermectin pills amazon ivermectin tablets 6 mg
heartgard ivermectin ivermectin for mini pigs how to use ivermectin for humans
buy prednisone 40 mg buy prednisone prednisone online paypal
ivermectin walgreens ivermectin egg withdrawal stromectol stay active
order sildenafil 100mg pills – generic sildenafil 50mg sildenafil 50mg tablet
stromectol online canada ivermectin 3 mg tablet bret weinstein ivermectin
ed dysfunction treatment
The very root of your writing whilst sounding reasonable in the beginning, did not work well with me after some time. Somewhere within the paragraphs you actually managed to make me a believer but just for a while. I nevertheless have a problem with your jumps in assumptions and you would do well to help fill in those breaks. If you can accomplish that, I would undoubtedly be amazed.
I’m not sure where you’re getting your information, but good topic.
I needs to spend some time learning more or understanding more.
Thanks for fantastic information I was looking for this information for
my mission.
order generic kamagra