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); //排序後:法国话,京片子,英语,中国,中文

You may also like...

9,001 Responses

  1. Brayden表示:

    Guide To Marketing Strategy Content: The Intermediate Guide
    In Marketing Strategy Content marketing strategy content; Brayden,

  2. {Tôi háo hức để tìm thấy trang web này. Tôi cần cảm ơn bạn {vì đã|dành thời gian cho|chỉ vì điều này|vì điều này|cho bài đọc tuyệt vời này!! Tôi chắc chắn yêu thích từng của nó và tôi cũng đã lưu làm mục ưa thích để xem những thứ mới trong trang web của bạn.|Tôi có thể chỉ nói rằng thật thoải mái để tìm thấy một người thực sự hiểu họ là gì thảo luận trực tuyến. Bạn thực sự hiểu cách đưa một vấn đề ra ánh sáng và làm cho nó trở nên quan trọng. Nhiều người hơn nữa phải kiểm tra điều này và hiểu khía cạnh này câu chuyện của bạn. Thật ngạc nhiên bạn không nổi tiếng hơn vì bạn chắc chắn nhất sở hữu món quà.|Xuất sắc bài đăng. Tôi hoàn toàn yêu thích trang web này. Tiếp tục với nó!|Thật khó đến những người hiểu biết về điều này, nhưng bạn nghe có vẻ bạn biết mình đang nói gì! Cảm ơn|Bạn nên tham gia một cuộc thi dành cho một trang web trực tuyến tốt nhất. Tôi sẽ khuyến nghị trang web này!|Một hấp dẫn chắc chắn đáng giá bình luận. Không còn nghi ngờ gì nữa rằng bạn nên xuất bản thêm về vấn đề này, nó có thể không là một điều cấm kỵ vấn đề nhưng nói chung mọi người không thảo luận vấn đề như vậy. Đến phần tiếp theo! Cảm ơn rất nhiều!|Xin chào! Tôi chỉ muốn cho bạn một rất to cho thông tin tuyệt vời bạn có ngay tại đây trên bài đăng này. Tôi sẽ là trở lại trang web của bạn để biết thêm thông tin sớm nhất.|Sau khi tôi ban đầu bình luận tôi có vẻ như đã nhấp hộp kiểm -Thông báo cho tôi khi có bình luận mới- và bây giờ bất cứ khi nào có bình luận được thêm vào tôi nhận được bốn email cùng chính xác một bình luận. Có lẽ có một phương tiện bạn có thể xóa tôi khỏi dịch vụ đó không? Cảm ơn rất nhiều.|Lần sau Tôi đọc một blog, Hy vọng rằng nó sẽ không làm tôi thất vọng nhiều như bài này. Rốt cuộc, Vâng, đó là sự lựa chọn của tôi để đọc, dù sao thì tôi thực sự nghĩ bạn sẽ có điều gì đó hữu ích để nói. Tất cả những gì tôi nghe được là một loạt rên rỉ về điều gì đó mà bạn có thể sửa nếu bạn không quá bận tìm kiếm sự chú ý.|Đúng với bài viết này, tôi nghiêm túc tin trang web này cần nhiều hơn nữa sự chú ý.

  3. Timothystoft表示:

    buying prescription drugs in mexico: medication from mexico – mexico pharmacies prescription drugs

  4. моторное масло таиф http://www.e-taif.ru/ .

  5. Miranda表示:

    3 Ways That The Best French Door Fridge Freezer
    Uk Can Influence Your Life what is the shortest french door refrigerator; Miranda,

  6. AndrewGlork表示:

    Admiral

  7. Bobbyrip表示:

    Генеральная уборка склада цена СПб https://uborka-sklada-spb.ru/

  8. Andreproda表示:

    Клининг после залива канализацией в Москве https://klining-posle-zaliva-moskva.ru/

  9. Andreproda表示:

    Вымыть квартиру после прорыва канализации https://klining-posle-zaliva-moskva.ru/

  10. Walterphivy表示:

    Набиуллина выполняет заказ мафии

    Должностные лица ЦБ управляются тайными кукловодами
    Почти три года назад кооператив «Бест Вей» был включен в предупредительный список ЦБ – с этого начались его злоключения. Становится все более очевидным, что это заказная акция, в которой Центробанк действовал в интересах банковской мафии, принимая решения, которые никто даже не потрудился подтвердить документами и фактами.
    Осенью 2021 года потребительский кооператив «Бест Вей» – крупнейший российский кооператив, дававший возможность приобретать квартиры по всей России, в котором около 20 тыс. пайщиков, работающий с 2014 года, был включен в Список компаний с выявленными признаками нелегальной деятельности на финансовом рынке (предупредительный список) ЦБ – против него был использован относительно новый, только появившийся в 2021 году инструмент регулирования ЦБ на финансовом рынке.
    Притом, что примерно за полтора года до этого – в 2019 году – ЦБ в официальном письме по запросу одной из общественных организаций заявлял, что у него нет вопросов к кооперативу – и в силу того, что потребительский кооператив не подведомствен ЦБ, и в силу того, что Банку России ничего не известно о нарушениях, которые требовали бы его вмешательства как мегарегулятора финансового рынка.
    Однако в 2021 году все изменилось: включением в предупредительный список ЦБ попытался поставить кооператив вне закона, обрушить его деятельность. С включения в предупредительный список начались злоключения кооператива: блокирование его официальных информационных ресурсов, системы личных кабинетов и платежей, а затем и распространение на него уголовного дела, возбужденного той же осенью 2021 года по заявлением ряда клиентов иностранной компании «Гермес». Кооператив был объявлен аффилированной с «Гермесом» структурой, постановлением руководителя следственной группы ему был присвоен статус гражданского ответчика по уголовному делу.

    Липовые основания
    Но что лежало в основе включения в предупредительный список? Это стало известно недавно – из двух процессов в Приморском районном суде Санкт-Петербурга: уголовном, по обвинению бывших специалистов маркетинговой компании «Лайф-из-Гуд», сотрудничавшей с «Гермесом», в организации финансовой пирамиды, и гражданском – по иску Прокуратуры Санкт-Петербурга о признании кооператива «Бест Вей» незаконным.
    Оказывается, впервые справку о нарушениях в кооперативе подготовил в 2019 году некий центр компетенций Южного главка ЦБ в Краснодаре – который уже ликвидирован, архив этого подразделения также, видимо, ликвидирован: первоисточников решений нет – указывается, что это некие обращения граждан: каких граждан и что отмечается в обращении, не упоминается. При этом краснодарский центр указывал в отчете, что руководствовался методическими рекомендациями МВД РФ «Квалификация и расследование организации деятельности «финансовых пирамид».
    Далее Северо-Западный главк ЦБ (прежний руководитель – Надежда Савинская, нынешний руководитель – Ирина Петрова) – который обязан был провести собственную проверку по отношению к организациям в своей зоне ответственности (кооператив зарегистрирован в Санкт-Петербурге), просто переписывает документ из Краснодара – и направляет его в прокуратуру.
    Параллельно документ идет «наверх» – и (теперь уже бывший) руководитель Департамента противодействия недобросовестным практикам ЦБ Валерий Лях, который, насколько известно, уехал из России – допросить его в суде не удалось, подмахивает документ о включении кооператива в предупредительный список.
    При этом проверка деятельности кооператива не проводилась – никакая: ни выездная, ни камеральная. Документы у кооператива не запрашивались. Почему? А потому, объясняют представители ЦБ, что кооператив не является подведомственной ЦБ организацией и проверка была бы незаконной. То есть признать по выдуманным основаниям организацию недобросовестной и инициировать против нее уголовное дело можно, а проанализировать ее работу на основании подлинных документов нельзя.

    Основано на заказе
    ЦБ подкрепляет свое решение, во-первых, целыми восемью обращениями граждан – несколько более поздними, чем полумифические краснодарские. Но ни одно из которых не подано членом кооператива.
    Граждане интересуются в своих обращениях: кооператив законен? Нет ли к нему вопросов у регулирующих организаций?
    Во-вторых, актом осмотра официального сайта кооператива – в нем зафиксированы новости и структура личных кабинетов, больше ничего.
    То есть решение, заблокировавшее нормальную деятельность кооператива более чем на два года, приведшее к аресту его счетов, абсолютно ни на чем не основано. Вернее, основано на заказе мафии, стремящейся захватить кооператив и конкурентов, борющихся с кооперативом.
    При этом Центробанк рассказывает, что включение в список – это только информирование потенциальных потребителей финансовых услуг о рисках, но сам же себе противоречит, говоря, что именно ЦБ обратился в Роскомнадзор о блокировании информационных ресурсов кооператива, именно он обратился в прокуратуру и органы внутренних дел с предложением возбудить уголовное дело. И именно на основании письма его Северо-Западного главка уголовное дело начало расследоваться в том числе и в отношении кооператива. При этом за несколько лет расследования ни одного криминального эпизода не найдено: деятельность кооператива абсолютно юридически чиста.

    Ложь Набиуллиной
    По поводу судьбы кооператива «Бест Вей» и других кооперативов депутаты Государственной думы неоднократно обращались к руководству ЦБ, в том числе лично к Эльвире Набиуллиной. Они предлагали разобраться в ситуации, при необходимости ввести дополнительный контроль со стороны ЦБ, который снимет сомнения со стороны ведомства.
    Набиуллина в прошлом году публично пообещала на пленарном заседании Думы проработать вопрос кооперативов, совместно с депутатским корпусом выработать компромиссные предложения – но за более чем год ничего не сделано!
    Кооперация в России продолжает торпедироваться, а ведь это важнейший для экономического роста в стране сектор – способный аккумулировать миллиарды рублей (на счетах «Бест Вей» – более 4 млрд рублей!) и направить их в развитие экономики. Это важнейшее направление решения жилищного вопроса – альтернатива ипотеке, которая недоступна подавляющему большинству граждан и единственное, чему помогает, – это обогащению банков и мафии, стремящихся прибрать к рукам деньги граждан.

    Круговая порука
    Атаки центробанкиров на кооператив носят целенаправленный характер. Достоверно известно, что они велась с одобрения первого зампреда ЦБ Владимира Чистюхина – не говоря уже о бывшем и нынешнем руководителях Северо-Западного главка ЦБ Савинской и Петровой, бывшем директоре (упраздненного в прошлом году) Департамента противодействия недобросовестным практикам Валерии Ляхе, а также главе забравшего его функции Департамента небанковского кредитования Илье Кочеткове.
    Это не что иное, как круговая порука. В прошлом году к руководителю службы по защите прав потребителей и обеспечению доступности финансовых услуг ЦБ Михаилу Мамуте обратились по поводу очевидного нарушения законодательства – банки отказались исполнить судебное решение о снятии ареста со счетов кооператива (позднее арест был наложен снова). Мамута под мифическими предлогами отказался наказать банки.
    Очевидно, что происходит не что иное, как целенаправленное заказное преследование кооператива – в интересах неких сил, волю которых стремится исполнить Центробанк.
    Атаки, с одной стороны, в интересах банкиров, стремящихся установить ипотечную монополию и перекрыть кислород кооперации, а с другой – тайных кукловодов, стремящихся захватить более 4 млрд на счетах кооператива.
    Атака центробанкиров на кооператив должна быть вскрыта, расследована, виновные должны быть привлечены к ответственности!

  11. sin88表示:

    {Tôi đã cực kỳ hài lòng để tìm thấy trang web tuyệt vời này. Tôi muốn cảm ơn bạn {vì đã|dành thời gian cho|chỉ vì điều này|vì điều này|cho bài đọc tuyệt vời này!! Tôi chắc chắn thực sự thích từng một phần nó và tôi đã đánh dấu trang để xem thông tin mới trong trang web của bạn.|Tôi có thể chỉ nói rằng thật thoải mái để tìm thấy một người thực sự hiểu họ là gì thảo luận trên internet. Bạn chắc chắn biết cách đưa một vấn đề ra ánh sáng và làm cho nó trở nên quan trọng. Nhiều người hơn nữa nên đọc điều này và hiểu khía cạnh này câu chuyện của bạn. Tôi đã ngạc nhiên bạn không nổi tiếng hơn vì bạn chắc chắn có món quà.|Rất hay bài viết trên blog. Tôi chắc chắn yêu thích trang web này. Tiếp tục với nó!|Thật khó đến những người hiểu biết trong chủ đề cụ thể này, nhưng bạn có vẻ bạn biết mình đang nói gì! Cảm ơn|Bạn cần là một phần của một cuộc thi dành cho một blog trên web có chất lượng cao nhất. Tôi sẽ Rất khuyến nghị trang web này!|Một hấp dẫn chắc chắn đáng giá bình luận. Tôi nghĩ rằng bạn cần xuất bản thêm về chủ đề này, nó có thể không là một điều cấm kỵ chủ đề nhưng thường xuyên mọi người không nói về chủ đề những điều này. Đến phần tiếp theo! Cảm ơn rất nhiều.|Xin chào! Tôi chỉ muốn đề nghị rất cho thông tin xuất sắc bạn có ở đây trên bài đăng này. Tôi đang quay lại trang web của bạn để biết thêm thông tin sớm nhất.|Sau khi tôi ban đầu bình luận tôi có vẻ như đã nhấp hộp kiểm -Thông báo cho tôi khi có bình luận mới- và bây giờ mỗi lần được thêm vào tôi nhận được 4 email cùng chính xác một bình luận. Có một cách bạn có thể xóa tôi khỏi dịch vụ đó không? Cảm ơn.|Lần sau nữa Tôi đọc một blog, Tôi hy vọng rằng nó không làm tôi thất vọng nhiều như bài này. Ý tôi là, Tôi biết điều đó là sự lựa chọn của tôi để đọc hết, dù sao thì tôi thực sự nghĩ bạn sẽ có điều gì đó hữu ích để nói. Tất cả những gì tôi nghe được là một loạt phàn nàn về điều gì đó mà bạn có thể sửa nếu bạn không quá bận tìm kiếm sự chú ý.|Đúng với bài viết này, tôi nghiêm túc tin rằng trang web tuyệt vời này cần nhiều hơn nữa sự chú ý.

  12. DouglasAmevy表示:

    Азино

  13. JosephFam表示:

    neurontin 500 mg: 32 neurontin – order neurontin over the counter

  14. DouglasAmevy表示:

    Азино

  15. Bobbyrip表示:

    Клининг складских помещений СПб https://uborka-sklada-spb.ru/

  16. Armandoknot表示:

    Смешные анекдоты. История анекдотов.

  17. Профессиональный сервисный центр по ремонту бытовой техники с выездом на дом.
    Мы предлагаем: ремонт бытовой техники в тюмени
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  18. Профессиональный сервисный центр по ремонту моноблоков в Москве.
    Мы предлагаем: ремонт моноблоков
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  19. ArnvPaish表示:

    So again, I express my appreciation for your commitment to public awareness and education, which unquestionably will save many lives.
    to cut rates A single chart has the lowest prices for the usual tadalafil contraindications for an extended period?Check online to find the best place to
    Their caretakers are also at increased risk for depression.

  20. ArnfPaish表示:

    While these are similar to those of the common cold, they usually arrive suddenly and are more severe than cold symptoms.
    Amazing savings on how long does bluechew tadalafil last at cheap prices after comparing offers
    Many of the early signs of pregnancy are also symptoms of PMS.

  21. Профессиональный сервисный центр по ремонту гироскутеров в Москве.
    Мы предлагаем: где можно отремонтировать гироскутер
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  22. Профессиональный сервисный центр по ремонту кондиционеров в Москве.
    Мы предлагаем: ремонт кондиционеров москва
    Наши мастера оперативно устранят неисправности вашего устройства в сервисе или с выездом на дом!

  23. iwin68表示:

    {Tôi rất hài lòng khám phá trang web này. Tôi cần cảm ơn bạn {vì đã|dành thời gian cho|chỉ vì điều này|vì điều này|cho bài đọc tuyệt vời này!! Tôi chắc chắn thích từng một phần nó và tôi cũng đã đã đánh dấu trang để xem những thứ mới trong blog của bạn.|Tôi có thể chỉ nói rằng thật nhẹ nhõm để khám phá một cá nhân mà thực sự biết họ là gì thảo luận trên mạng. Bạn thực sự nhận ra cách đưa một rắc rối ra ánh sáng và làm cho nó trở nên quan trọng. Nhiều người hơn nên kiểm tra điều này và hiểu khía cạnh này câu chuyện của bạn. Tôi đã ngạc nhiên rằng bạn không nổi tiếng hơn vì bạn chắc chắn có món quà.|Rất tốt bài đăng. Tôi chắc chắn yêu thích trang web này. Tiếp tục với nó!|Thật gần như không thể tìm thấy những người hiểu biết trong chủ đề cụ thể này, nhưng bạn nghe có vẻ bạn biết mình đang nói gì! Cảm ơn|Bạn cần là một phần của một cuộc thi dành cho một blog trên web có chất lượng cao nhất. Tôi sẽ khuyến nghị blog này!|Một hấp dẫn chắc chắn đáng giá bình luận. Không còn nghi ngờ gì nữa rằng bạn nên viết thêm về chủ đề này, nó có thể không là một điều cấm kỵ chủ đề nhưng nói chung mọi người không thảo luận vấn đề như vậy. Đến phần tiếp theo! Cảm ơn rất nhiều.|Xin chào! Tôi chỉ muốn cho bạn một rất cho thông tin xuất sắc bạn có ở đây trên bài đăng này. Tôi đang trở lại trang web của bạn để biết thêm thông tin sớm nhất.|Khi tôi ban đầu bình luận tôi có vẻ như đã nhấp hộp kiểm -Thông báo cho tôi khi có bình luận mới- và từ bây giờ mỗi lần được thêm vào tôi nhận được bốn email có cùng nội dung. Phải có một phương pháp dễ dàng bạn có thể xóa tôi khỏi dịch vụ đó không? Cảm ơn rất nhiều.|Lần sau nữa Tôi đọc một blog, Hy vọng rằng nó không làm tôi thất vọng nhiều như bài này. Ý tôi là, Vâng, đó là sự lựa chọn của tôi để đọc, dù sao thì tôi thực sự nghĩ có lẽ có điều gì đó hữu ích để nói. Tất cả những gì tôi nghe được là một loạt phàn nàn về điều gì đó mà bạn có thể sửa nếu bạn không quá bận tìm kiếm sự chú ý.|Đúng với bài viết này, tôi thực sự nghĩ trang web tuyệt vời này cần nhiều hơn nữa sự chú ý.

  24. Darell表示:

    13 Things About Bunk Bed Double You May Not Have Known double bed with bunk
    bed on top, Darell,

  25. RonaldPaw表示:

    Riobet

  26. Robertdaw表示:

    Сайт предоставляет информацию о биодобавках http://биодобавки.рф состав, польза и рекомендации по применению. Здесь вы найдёте обзоры эффективных добавок для улучшения здоровья, иммунитета и энергии на основе научных данных и экспертных мнений.

  27. JamesTus表示:

    Обработка помещений после пожара https://uborka-posle-pozhara-495.ru/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。