簡體   English   中英

Javascript對首選項進行字符串排序

[英]Javascript sort array of strings with preference

我正在嘗試對JavaScript中的數組進行排序,但是我希望一個特定的項目始終排在第一位,而另一個特定的項目始終排在最后:

var Person= [{
   "Country": "Japan",
   "Name": "user1"

}, {
   "Country": "Spain",
   "Name": "user24"

}, {
   "Country": "Usa",
   "Name": "user1"

}, {
   "Country": "Brazil",
   "Name": "user1"

}];

這是我的compare功能:

function compare(a,b) {
      if (a.Country< b.Country)
        return -1;
      if (a.Country> b.Country)
        return 1;
   //here aditional condition
      if(a.Country=="Spain") //condition for last item
          return 2; 
       if(a.Country=="Brazil") //condition for always in first item
          return -1; 
      return 0;
    }

我正在運行Person.sort(compare); 做排序。

首先,您還需要對照這些字符串檢查b ,其次,您的特殊比較需要放在常規的比較之前。

工作現場演示:

 function compare(a, b) { if (a.Country == "Spain") return 1; if (a.Country == "Brazil") return -1; if (b.Country == "Spain") return -1; if (b.Country == "Brazil") return 1; if (a.Country < b.Country) return -1; if (a.Country > b.Country) return 1; return 0; } var Person = [{ "Country": "Japan", "Name": "user1" }, { "Country": "Spain", "Name": "user24" }, { "Country": "Usa", "Name": "user1" }, { "Country": "Brazil", "Name": "user1" }]; Person.sort(compare); console.log(Person); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM