簡體   English   中英

用Javascript對具有多個值的數組進行排序

[英]Sort array with multiple values in Javascript

你如何排序這樣的數組fullnamearray.push(firstname +" "+ lastname); 我想按姓氏而不是名字排序。 該列表應顯示名字,然后顯示姓氏。

 fullnamearray.push(firstname +" "+ lastname);
 fullnamearray.sort();
  for(var i = 0; i < fullnamearray.length; i++){
               Name.innerHTML += '<li>' + fullnamearray[i] + '</li>';
               }

在輸出時而不是在存儲時將它們串聯:

fullnamearray.push([lastname, firstname]);
fullnamearray.sort();
for(var i = 0; i < fullnamearray.length; i++){
     Name.innerHTML += '<li>' + fullnamearray[i][1] + " " +  fullnamearray[i][0] + '</li>';
}

我想按姓氏而不是名字排序。 該列表應顯示名字,然后顯示姓氏。

fullnamearray.sort( function(a,b){
  var lastNameA = a.split(" ")[1];
  var lastNameB = b.split(" ")[1];
  return lastNameA.localeCompare( lastNameB );
})

現在,您可以按照之前的方式顯示列表。

如果firstnamelastname之間使用空格字符,則上述方法將失敗,因此也許您可以按照@Thilo的建議進行操作

fullnamearray.push({first: firstname, last: lastName});
fullnamearray.sort( function(a,b){
  var lastNameA = a.lastName;
  var lastNameB = b.lastName;
  return lastNameA.localeCompare( lastNameB );
});

並顯示為

for(var i = 0; i < fullnamearray.length; i++){
    Name.innerHTML += '<li>' + fullnamearray[i].firstName + " " + fullnamearray[i].lastName '</li>';
}

嘗試這個:

fullnamearray.push(firstname +" "+ lastname);
fullnamearray.sort(function (name1, name2) {
    return name1.split(' ')[1] > name1.split(' ')[1];
});

暫無
暫無

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

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