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...

11,459 Responses

  1. Timsothyabela表示:

    It’s amazing to visit this web site and reading the views of all friends about this paragraph, while I am also zealous of getting knowledge.

    kinogo

  2. read表示:

    Spot on with this write-up, I really believe that this amazing site needs a great deal more attention. I’ll probably be back again to see more, thanks for the info!

  3. Hello! I simply want to give you a huge thumbs up to the wonderful information you have here on this post. We are coming back to your blog site to get more soon.

  4. SamuelBix表示:

    amoxicillin 250 mg: Amox Star – amoxicillin capsule 500mg price

  5. Star Wars: Episode VIII – The Last Jedi – Snoke is killed by Kylo Ren, who replaces him as Supreme Chief.

  6. WilliamNib表示:

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

  7. DanielAbice表示:

    https://cipharmdelivery.com/# where can i buy cipro online

  8. 1 доллар в тенге [url=https://converter-valut.kz/]1 юань в тенге[/url] .

    Получите доступ к актуальным курсам валют с любым устройством. Конвертация тенге, рублей и других валют на сайте происходит мгновенно, а удобный интерфейс делает процесс максимально простым.

  9. KennethPah表示:

    get generic clomid without prescription clomidonpharm where can i buy cheap clomid

  10. нарколог на дом круглосуточно [url=http://zarabotokdoma.creartuforo.com/viewtopic.php?id=11477/]нарколог на дом круглосуточно[/url] .

  11. I really appreciate this post. I have been looking everywhere for this! Thank goodness I found it on Bing. You’ve made my day! Thx again

  12. Bryanves表示:

    Пирамида из выдумок о «Бест Вей»

    «Выпускница техникума» провела экспертизу, по которой была заблокирована организация и предъявлены обвинения ее менеджерам

    Продолжаем следить за резонансным разбирательством, в том числе уголовным, касающимся санкт-петербургского потребительского кооператива «Бест Вей». На заседании Приморского районного суда города Санкт-Петербурга состоялось выступление важного свидетеля обвинения – сотрудницы Северо-Западного главка ЦБ Любови Парфеновой, которая составила в 2021 году заключение о том, что кооператив «Бест Вей» имеет признаки финансовой пирамиды, и в том же году дала показания следствию, на основании которых были предъявлены уголовные обвинения нескольким лицам.

    Первоначально отказывалась отвечать на вопросы, заявив, что ничего не помнит (здесь и далее цитируется звукозапись допроса, которая есть в редакции) и с 2022 года не работает в структуре противодействия нелегальной деятельности на финансовом рынке. Прозвучало замечание судьи Екатерины Богдановой, что Парфенова – свидетель, приглашенный для дачи показаний и для эксперта три года – не срок, Парфенова обязана сделать пояснения. Судья распорядилась дать ей текст ее заключения, после чего свидетель с трудом ответила на некоторые вопросы, касающиеся «своего» исследования.

    Свидетель пояснила суду, что заключение было составлено по поручению начальника отдела противодействия нелегальной деятельности на финансовом рынке Северо-Западного ГУ ЦБ РФ, в котором тогда работала (вся вертикаль противодействия нелегальной деятельности на финансовом рынке в 2022 году ликвидирована). Исследование проведено на основании материалов, предоставленных Департаментом противодействия нелегальным практикам ЦБ, дополнительных материалов не запрашивала.

    Заключение было составлено, как свидетель пояснила, прежде всего путем переложения в 2021 году письма 2019 года из Краснодарского центра компетенций по противодействию нелегальным практикам на финансовом рынке ЦБ – переложения в форму ответов на вопросы, поставленные Департаментом противодействия нелегальным практикам ЦБ, возглавлявшимся Валерием Ляхом, которого некоторые активисты кооператива связывает с организацией атаки на него, учитывая, что Лях перешел на должность главы общественно-государственного Фонда по защите прав вкладчиков и акционеров и может получить право управлять активами кооператива.Как именно проводилось исследование в Краснодаре, есть ли материалы этого исследования, Парфенова не знает, видела только «результирующее» письмо. Использовались также некие методические рекомендации ЦБ по выявлению признаков финансовых пирамид – что там написано, свидетель не смогла вспомнить.

    Актуальных документов кооператива на момент проведения исследования не имела и не запрашивала. Самостоятельно деятельность кооператива «Бест Вей» не анализировала – только по представленным данным и краснодарскому заключению. Движение по счетам кооператива не исследовала.

    На вопрос адвокатов, есть ли у Парфеновой подготовка для финансово-экономической и юридической экспертизы, пояснила, что у нее только бакалавриат по экономике и на тот момент шесть лет опыта работы в системе ЦБ. То есть нет магистратуры – полного высшего образования.

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

    В ответ на вопрос одного из адвокатов пояснила, что до поступления письма из Краснодара кооператив «Бест Вей», зарегистрированный в Санкт-Петербурге, в поле зрения Северо-Западного главка ЦБ, который и должен был исследовать его деятельность изначально, не попадал, жалоб на него не было. Пояснила, что кооператив работал по всей России – но заключение по нему было подготовлено только в Краснодаре.

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

    Адвокаты спросили: в Альфа-Банке, например, есть вознаграждение за приведенного клиента, делает ли это Альфа-Банк финансовой пирамидой? Парфенова ответила, что Альфа-Банк поднадзорен Банку России, значит, к нему не может быть вопросов. На уточняющий вопрос о том, что речь же идет, как утверждается, о признаке финансовой пирамиды, ответственность за создание которой предусмотрена УК, не смогла дать пояснений.

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

    Пирамидальность кооператива, с точки зрения Парфеновой, доказывает широкая реклама. В заключении Парфеновой приведены три статьи в разных СМИ, причем нерекламные, а информационные. Адвокаты спросили: разве это можно назвать широкой рекламой? Каковы критерии широты рекламы? Парфенова ответила, что это широкая реклама – «таково мое личное мнение», и критериев «широты» рекламы нет.

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

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

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

    «Вывод о том, что «Гермес» является партнером «Бест Вей», я сделала из заключения Центра компетенций. Просто продублировала. Лично изучая документы, не нашла такого. У «Гермеса» были завышены ставки по вкладам – 15–22%».

    На вопрос адвоката: «Если ваш товарищ – спекулянт, означает ли это, что вы тоже спекулянт?» – Парфенова ответила отрицательно.

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

    «Возмутительно, что деятельность хозяйствующих субъектов, тем более имеющих значительную социальную составляющую, блокируется по заключениям экономически и юридически безграмотных девочек с бакалавриатом – фактически техникумом, по экономике, – комментирует один из адвокатов. – Со ссылкой на некие ранее проведенные исследования пятилетней давности, по которым доступна только резолютивная, а не исследовательская часть. Это совершенно безосновательные, местами откровенно смешные претензии к кооперативу – если бы не было грустно из-за того, что люди по этим, возможно, заказным обвинениям находятся в СИЗО. Надеемся, в результате рассмотрения уголовного дела истина будет установлена, и авторы наветов, оговоров честных людей, в том числе Парфенова, будут привлечены к уголовной ответственности, о которой предупреждались».

  13. You produced some decent points there. I looked on the internet for the problem and discovered most individuals go in addition to with all your website.

  14. Engineering has always been right now there in making premature ejaculation treatment existence connected with men and women easier. In truth, on account of engineering the entire world regarding inner thoughts in addition has already been overcome. Don’t attempt to assume dirty below folks. What exactly I’m talking about could be the adore connection that may take place through online dating sites in addition to talking bedrooms or even software for instance ICQ, LIVE MESSENGER as well as MIRC.

  15. вызов нарколога на дом круглосуточно вызов нарколога на дом круглосуточно .

發佈留言

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