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,085 Responses

  1. Thanks for the reponse. I’ll put this information to good use.

  2. Lazrieo表示:

    Здравствуйте!
    Мы предлагаем дипломы любых профессий по приятным тарифам.
    rushkas-diploms.ru/kupit-diplom-novosibirsk

  3. I like the helpful information you provide in your articles. I will bookmark your blog and check again here regularly. I am quite certain I will learn a lot of new stuff right here! Best of luck for the next!

  4. I was able to find good advice from your blog articles.

  5. OLaneevige表示:

    What’s up, its fastidious paragraph concerning media print, we all be familiar with media is a enormous source of facts.

    https://nl.gta5-mods.com/users/FarFarLight

  6. Eduardodow表示:

    Псевдопотерпевшие заплатят сполна

    По уголовному делу прошло уже 13 судебных заседаний, на которых осуществлялось судебное следствие – и ни на одном не прозвучали доказательства доводов обвинения и ущерба в 282 млн рублей. Зато на них выступили десятки алчных людей, лгунов, которых следствие подговорило поучаствовать в атаке на «Гермес» и «Бест Вей» и в качестве оплаты получить часть средств кооператива «Бест Вей», – так называемых потерпевших.

    Но, во-первых, следствие, как водится, обмануло – получить куш не удастся, «потерпевшим» в лучшем для них случае выплатят копейки – люди, стоящие за следствием, не для того пытаются захватить активы кооператива, чтобы с кем-то делиться. Во-вторых, после завершения рассмотрения дела все «потерпевшие» получат миллиардные иски как от нынешних подсудимых, которые более двух лет томятся в тюрьме – но скоро из нее выйдут, так и от пайщиков кооператива, которые более двух лет по их милости лишены возможности купить жилье (которое они планировали и на которое собрали деньги – оно очень подорожало) или вернуть свои деньги, они к тому же из-за инфляции частично обесценились.

    Вспомним поименно
    Ключевые фигуры обвинения – это пока не выступавшие в суде сисадмин «Гермеса» Набойченко и Комаров. Это ключевые для обвинения свидетели: сказки, легшие в основу уголовного дела, рассказаны прежде всего ими двумя.

    Бывший айтишник Набойченко на следствии обвинил бывших коллег в воровстве и мошенничестве, но на суд идти оказывается из-за якобы угроз в свой адрес. Его показания полностью опровергнуты показаниями в суде другого сисадмина – Рогановича.

    Другие свидетели, выступая в суде, обвинили в мошенничестве и воровстве самого Набойченко – опустившуюся личность, наркомана.

    Бывший водитель Комаров показал на следствии, что возил и передавал неучтенную наличность и про бизнес «знает все», хотя ни к каким бизнес-процессам не был допущен.

    Его показания полностью опровергнуты показаниями другого водителя – Прусакова, который опроверг и перевозку наличных, и тайную кухню.

    Логинов – бывший консультант «Гермеса», заработавший колоссальные деньги на финансовых операциях в этой компании, не платя с них налоги и не декларируя валютные операции, решил перейти «на сторону добра» и назваться потерпевшим. Плюс еще предъявить иск на хайповую сумму 1 млрд рублей.

    Лжет, клевещет не переставая, выдумывает, что ему угрожают.

    Дегенерат, на которого заявление в полицию писали его собственные родители, которых он угрожал убить.

    Московская – лгунья, пытается получить то, что ей не положено по договору, обманывает суд. Еще одна, кроме Логинова, заявительница морального ущерба на 1 млрд рублей, который используется для ареста счетов кооператива. Так же как и Логинов, ответит перед пайщиками и теми, кто сейчас находится на скамье подсудимых.

    Школьник – «нулевая» потерпевшая, оговорившая бывших коллег из материальной заинтересованности: участвовала в создании альтернативного проекта по лекалам кооператива «Бест Вей». Первой заявила об отказе быть потерпевшей – но за оговор ответит все равно.

    Аристова – истеричка и врушка, рассказывает выдуманные истории про кооператив, выдвигает незаконные требования.

    Болян – мошенник и прохиндей, пытающийся получить чужие деньги.

    Шахмин – патологический лжец, что, видимо, связано с его прежней работой в МВД. Врет о своих операциях в «Гермесе» от начала и до конца, не представляет никаких подтверждений.

    Сахапова – псевдожурналистка: лгунья и заказушница. Обманула собственных родителей, а теперь пытающаяся поучаствовать в информационных операциях тех, кто нападает на невинных людей, томящихся в тюрьме.
    Подписывайтесь на наш канал

    Александрова – пять лет работала с «Гермесом», получала прибыль, была консультантом. Теперь обвиняет компанию в обмане. Может быть, посмотреть в зеркало?

    Горбанев – муж топ-менеджера «Лайф-из-Гуд» Марии Горбаневой, оговорившей в показаниях следствию бывших коллег (в суде пока не выступала). Как попугай все повторяет за женой. Но отвечать перед законом он будет соло, хотя и вместе с женой – за клевету.

    Приходько – престарелая пособница следствия, подставившая своего друга – 83-летнего Виктора Ивановича Василенко, который ранее помог ей с деньгами. «Отблагодарила».

    Османов – проходимец, болтун, не подтвердил ни одного своего утверждения, хотя представляется адвокатом по уголовным и гражданским делам.

    Галашенкова – лгунья, пытающаяся петь в дуду следствия.

    Кудымова – пытается мошенническим способом получить назад членские взносы, внесенные в кооператив.

    Шайхулина, Аширбекова, Исрафилов – выдумщики, не имеющие ни одного подтверждающего документа: одни сказки.

    Душкина – скрыла от суда свои заработки в «Гермесе», но пытается получить назад вложенные средства в полном объеме.

    Седова – пытается использовать уголовный суд для решения личных финансовых проблем.

    Второва – любительница половить рыбку в мутной воде. Придется за это ответить.

    Холопова – выдумщица, при этом сама обманутая следствием и используемая им втемную.

    Каткова – сделала абсолютно бездоказательные утверждения.

    Дорда – рассказывает, что ее гипнотизировали при привлечении в «Гермес». Либо сумасшедшая, либо врет, чтобы прикрыть свои махинации.

    Хромченко – точно сумасшедшая, рассказавшая суду о своих верных чеченцах-адвокатах, которые охотились на ее обидчиков.

    Логинова – экс-жена одиозного Логинова, которая не смогла сложить два и два и понять, что претензии нужно предъявлять к бывшему мужу.

    Марьинский и Жигалов – обвинили невинных людей, хотя сами финансовые профессионалы, сами были консультантами, повели за собой, соответственно, мать – Марьинскуюи жену – Жигалову.

    Касикова и Комова – никак не могут понять, что заблокировал им выплаты не «Гермес», а следствие и его подельник айтишник Набойченко и обращаться к следствию за получением денег как минимум странно.

    Яковлева – вложила все средства в один «кошелек»: теперь все виноваты в ее финансовой безграмотности!

    Габдрахманова, Кулюпин, Кострова – не попытались понять, как возникли проблемы, участвуют в оговоре невиновных людей.
    Мокичев и Каптирмов – заплутали в трех соснах: предъявляют претензии к своему третьему другу, но почему-то участвуют в уголовном деле против компании «Гермес».

    Нечаев, Липилин, Усолова – не пробовали урегулировать спор в гражданско-правовых инстанциях – сразу пошли в правоохранительные органы. Вступи они в контакт с «Гермесом» –сейчас были бы с деньгами.

    Смирнова и Данильченко – использованы обвинением для массовки – но будут привлечены как соучастники преступления.

    Как видим, часть потерпевших – откровенные мошенники, но большинство – заблудшие люди, обманутые следствием. Им пора осознать, что следствие и обвинение их используют втемную.

    В любом случае ни один «потерпевший» по уголовному делу не представил документы, подтверждающие неисполнение обязательств перед ними со стороны компании «Гермес»:

    –у них нет документов о том, что они внесли средства на счет;

    –нет исчерпывающих данных об операциях по счетам, включая использование инвестиционного плеча, предоставлявшегося компанией;

    –они не представили достоверную и полную информацию о выводе средств со счета;

    –ни один не представил налоговых деклараций, в которых учтены доходы.

    Все их показания – пустые слова. При этом они – соавторы преступления следствия, так как не будь их заявлений, не было бы уголовного дела, невинные люди не видели бы в тюрьме.

    Каждому из них будет исковое «воздаяние» – и за материальный, и за моральный ущерб, причем будет в самое ближайшее время. За клевету, мошенничество, налоговые и валютные преступления, колоссальный финансовый вред людям и организациям, моральные страдания как подсудимых, так и пайщиков кооператива «Бест Вей».

    Не 30 сребреников, а 35 тыс. «деревянных»
    «Потерпевшим» нужно понять, что активы, которые они с пеной у рта перечисляют в суде – которые якобы им должны, они с помощью данного уголовного дела не получат никогда. Следствие и стоящие за ним люди не для того претендуют на средства кооператива – 4 млрд руб., чтобы делиться.

    У людей, стоящих за уголовным делом, есть проект передать деньги в специфическую организацию – общественно-государственный фонд защиты пайщиков и акционеров, который выплатит… по 35 тыс. рублей, не более: так предусмотрено уставом этого фонда.

    «Гермес» работает
    Их участие на стороне следствия бессмысленно и в материальном плане, так как компания «Гермес» после рукотворного кризиса работает и выполняет свои обязательства перед клиентами. При этом, разумеется, заблокировав счета всем тем, кто подал на нее заявления в органы уголовной юстиции.

    Все активы переведены в топовые криптовалюты: проблем с выводом активов сейчас в компании нет.

    Любой клиент компании, не участвующий в войне с ней, может вывести средства и выйти в ноль прямо сейчас – ничего не потеряв во вложенных активах.

    При этом дав активы в рост, подождав два года, он через два года получит значительный доход.

    ОПГ Колокольцева и ее соучастники
    Давление со стороны руководства МВД и инспирированные МВД статьи в федеральных СМИ провоцируют «потерпевших» выдумывать претензии, привлекают тех, кто отказывался подавать заявление в качестве потерпевшего на то, чтобы заявить материальные и моральные претензии.

    Правоохранительные органы сознательно подзуживают людей, чтобы увеличить массу потерпевших и требований. Но они обманывают людей – потерпевшие ничего не получат, и делают их преступниками.

    Многие из «потерпевших» это уже поняли. На суд 1 августа не явилось ни одно из заявленных лиц, признанных следствием потерпевшим. Есть отказы от статуса потерпевшего, десятки лиц, признанных потерпевшими, отказываются выступать в суде.

    Они осознали, что незаконно, обманным путем претендовать на чужое имущество – воровство и мошенничество. И они не должны участвовать в клевете на других людей.

    Сфабриковавшие дело Сапетова, Машевский, Винокуров, Негрозов и другие – преступники. Как и покрывающий их министр Колокольцев.

    За сотрудничество с мафией – следствием и стоящими за ним бенефициарами разгрома и раздела кооператива – придется ответить всем, кто выступает на их стороне! Иски и заявления в органы составлены и ждут окончания судебного следствия.

  7. Many thanks for this kind of facts I had been hunting all Search engines to find it!

  8. Trefozk表示:

    Здравствуйте!
    Полезная информация как купить диплом о высшем образовании без рисков
    mandiplomiks.ru/diplom-tehnikuma
    Рады оказаться полезными!.

  9. i found your blog through a search engine, very interesting.

  10. arenda_gmpa表示:

    Секреты выбора идеального трактора в аренду|Топ-3 компаний по аренде тракторов|Аренда тракторов: выгодно ли это?|Онлайн-платформы для аренды тракторов: как выбрать лучшую|Объективное сравнение преимуществ и недостатков аренды трактора|Как экономить на аренде трактора|Как не попасть на уловки арендодателей тракторов|Частные лица и аренда тракторов: реальность и перспективы|Услуги аренды тракторов и спецтехники на выезде|Лучшие предложения по аренде мини-тракторов|Почему стоит выбрать аренду трактора у профессионалов|Тракторы на день: выгодная аренда на краткий период|Как выбрать компанию с квалифицированными водителями для аренды тракторов|Как выбрать трактор для аренды: основные критерии выбора|Тракторы для аренды: какие модели предпочтительнее|Где найти выгодные предложения по аренде тракторов в вашем городе|Как оценить качество услуг по аренде трактора|Идеи использования трактора в качестве декора на свадьбе|Советы по подбору идеального трактора для вашего проекта|Услуги по аренде бетономешалок: плюсы и минусы|Как выбрать компанию с наилучшими условиями по аренде тракторов|Что нужно знать перед арендой трактора для строительства|Аренда тракторов для сельского хозяйства: особенности и нюансы|Как оценить профессионализм компании по аренде тракторов|Аренда тракторов с доставкой: удобство и экономия времени|Как выбрать трактор для работ на даче
    трактор экскаватор аренда https://arenda-traktora-skovshom.ru/ .

  11. Jessephoth表示:

    Свежие и актуальные http://barbie-games.ru новости современной техники

  12. What’s The Job Market For Online Store Near Me Professionals?

    Online Store Near Me

  13. Mazrevk表示:

    Добрый день!
    Официальная покупка диплома вуза с сокращенной программой в Москве
    rushkadiplomik.ru

  14. This site was… how do I say it? Relevant!! Finally I’ve found something that helped me. Thanks!

  15. arenda_dset表示:

    Экономьте время и деньги с арендой трактора,
    Надежные тракторы для аренды,
    Аренда трактора с оперативной доставкой,
    Аренда трактора для сельского хозяйства,
    Эксклюзивные предложения по аренде трактора,
    Тракторы на аренду для строительных работ,
    Гибкие условия аренды тракторов,
    Безопасная и надежная аренда тракторов с водителем,

    трактор экскаватор аренда https://arenda-traktora77.ru/ .

  16. You seem to be very professional in the way you write.”‘,~*

  17. The actual challenge to become is normally you can actually SOLE check out that level of your tax discount over the internet by looking at your RATES web-site.

  18. accident表示:

    Are You In Search Of Inspiration? Try Looking Up Semi Truck Case accident

  19. Hi there, There’s no doubt that your website might be having internet browser compatibility issues. When I take a look at your website in Safari, it looks fine however, when opening in Internet Explorer, it’s got some overlapping issues. I just wanted to provide you with a quick heads up! Apart from that, great site!

  20. You’ve got a great blog there keep it up. I’ll be watching out for most posts.

  21. you could just listen to the beat of those high bass from Rap songs, i just like rap songs,.

  22. Very informative and fantastic bodily structure of content material , now that’s user friendly (:.

  23. Marcelo表示:

    Responsible For A Green Power Mobility Budget?
    10 Wonderful Ways To Spend Your Money are green power
    mobility scooters any good (Marcelo)

  24. Woah! I’m really loving the template/theme of this website. It’s simple, yet effective. A lot of times it’s hard to get that “perfect balance” between user friendliness and visual appeal. I must say that you’ve done a very good job with this. Additionally, the blog loads super fast for me on Safari. Exceptional Blog!

  25. Lazrvni表示:

    Привет!
    Заказать диплом любого университета.
    mans-diplomyxx.ru/svidetelstvo-o-rozhdenii-sssr1

  26. kuhnya_weEn表示:

    Как заказать кухню на заказ дешевле
    изготовление кухни на заказ https://kuhninazakaz177.ru/ .

  27. Mazrthw表示:

    Здравствуйте!
    Реально ли приобрести диплом стоматолога? Основные шаги
    rushkadiplomikx.ru/kupit-diplom-novosibirsk

  28. You’ll Never Guess This Jaguar Xf Key Fob Replacement’s Tricks jaguar Xf key fob

  29. Diplomi_izEa表示:

    Привет, друзья!
    Заказать документ о получении высшего образования можно в нашей компании.
    rushkas-diploms.ru

  30. Trefvbn表示:

    Привет, друзья!
    Купить диплом о среднем образовании в Москве и любом другом городе
    diploms-man.ru/kupit-diplom-ekaterinburg
    Рады оказать помощь!.

發佈留言

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