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); //排序後:法国话,京片子,英语,中国,中文
Hi there! I know this is kind of off topic but I was wondering if you knew where I could locate a captcha plugin for my comment form? I’m using the same blog platform as yours and I’m having trouble finding one? Thanks a lot!
Hi there, I just hopped over on your web site by means of StumbleUpon. No longer something I might most often read, but I liked your feelings none the less. Thanks for making something worth reading.
בכל הגוף. מאמר 1 דירות דיסקרטיות לאוהבי הריגושים דירות דיסקרטיות הן פתרון נפלא לכל אותם הגברים המחפשים ריגושים והרפתקאות. באזור לרבות תיירים ואנשי עסקים. ניתן ליהנות מהשירות המעולה 24 שעות ביממה. מאמר 3 דירות דיסקרטיות בראשון לציון יגרמו לך full articlesays:
It is really rare to encounter a specialist in whom you may have some confidence. In the world these days, nobody actually cares about showing others the solution in this matter. How fortunate I am to have actually found a wonderful site as this. It is really people like you who make a true difference in this world through the ideas they reveal.
мдф или фанера мдф или фанера .
железобетонные изделия цена kupit-zhbi.ru .
i was just browsing along and came upon your blog. just wanted to say good blog and this article really helped me.
7 Small Changes You Can Make That’ll Make The Biggest Difference In Your Audi A3 Key replacement Audi Key cost
Are You Responsible For The Double Glazing In Bedford Budget?
12 Tips On How To Spend Your Money window repair
bedfordshire (Aleisha)
бетонные изделия купить бетонные изделия купить .
Ten Guidelines For Treating Depression Myths That Don’t
Always Hold medication to treat anxiety and
depression (http://bohyeon.co.kr/bbs/board.php?bo_table=free&wr_id=10819)
What’s The Reason? Mesothelioma Lawsuit Is Everywhere This Year mesothelioma Settlement (labelv.net)
13 Things About Bi-Fold Door Repair You May Not Have Known Bifold Door Repairs
7 Simple Secrets To Totally Enjoying Your ADHD Titration titration Period adhd
When I originally commented I appear to have clicked the -Notify me when new comments are added- checkbox and now whenever a comment is added I receive 4 emails with the same comment. Perhaps there is an easy method you are able to remove me from that service? Appreciate it.
Привет!
Купить диплом о высшем образовании
fatcow.com/blog/?p=344#comment-3676832
Покупка школьного аттестата с упрощенной программой: что важно знать
The 12 Worst Types Patio Door Repair Service Accounts You Follow
On Twitter Installing
ламинированная фанера купить http://fanera-kupit11.ru/ .
Добрый день!
Заказать диплом любого ВУЗа.
forum.nedug.ru/blog.php?cp=16551
Oh my goodness! Incredible article dude! Thanks, However I am experiencing troubles with your RSS. I don’t understand why I cannot subscribe to it. Is there anybody else getting identical RSS issues? Anyone that knows the answer will you kindly respond? Thanks!
20 Interesting Quotes About Maidstone Windows And Doors Back doors Maidstone
This Is The History Of Land Rover Replacement Key workshop
5 Killer Quora Answers To Bi Fold Door Repair Near Me bi fold door repair near me
You’ll Be Unable To Guess Treadmills For Home UK’s Secrets home
Лучшая сантехника по низким ценам в Минске
Если вы ищете, где купить сантехнику в Минске, то наш интернет-магазин — для вас.
Большой ассортимент товаров представлен в различных ценовых категориях, а благодаря разнообразию размеров,
форм и других параметров, вы точно найдёте наиболее подходящую модель.
Создайте свой уникальный дизайн ванной комнаты вместе с нами!
Почему Almoni?
Высокое качество: мы работаем с ведущими производителями и брендами с мировым именем,
например: Orans, Ravak, Vitra, Kaldewey, Roca и другие. Все изделия сертифицированы.
Доступные цены: благодаря нашему сотрудничеству напрямую с заводами-изготовителями,
у вас появляется возможность купить сантехнику недорого.
Широкий ассортимент: большой выбор точно позволит вам найти подходящую модель или цвет товара,
чтобы наиболее гармонично вписать его в общий интерьер.
Удобный сервис: заказы обрабатываются в кратчайшие сроки, есть возможность выбрать
подходящий для вас вариант уведомлений (смс/звонок/почта), а оповещения о передвижении
товара позволят вам всегда быть в курсе его местоположения. Оставить онлайн-заказ вы можете
круглосуточно через корзину на сайте, а с 09:00 — 21:00 это можно также сделать через оператора.
Мы любим наших клиентов: при покупке от 3 000 р. вы получаете приятные подарки,
а для наших постоянных покупателей действуют специальные скидки.
Аккуратная доставка в срок курьером доступна по всей Республике Беларусь,
а также более чем в 1000 пунктах самовывоза в России.
Если у Вас возникли вопросы или сложности с заказом, обратитесь к оператору,
который предоставит актуальную информацию, а также проконсультирует по товарам.
Сделать это можно по телефону: +375 (33) 398 66 77.
Интернет-магазин сантехники almoni.by
11 “Faux Pas” That Actually Are Okay To Create Using Your
Collapsible Scooter boot scooters for sale [http://www.isexsex.com]
Как правильно купить диплом колледжа и пту в России, подводные камни
bodybuilding.net/members/sonnick84-page3
You are so cool! I don’t believe I’ve read something like this before. So nice to discover someone with unique thoughts on this subject matter. Seriously.. thanks for starting this up. This web site is something that is required on the internet, someone with some originality.
16 Must-Follow Instagram Pages For Black Fridge Freezer-Related Businesses Fridge Freezer Best Buy