欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在JavaScript 中按字母排序之如何在 JS 中按名稱排序

 更新時間:2023年09月06日 10:18:57   作者:JavaScript  
有時你可能有一個單詞數(shù)組,你想按字母順序(從 a-z)對每個單詞進行排序,或者你可能有一個包含用戶信息(包括名字)的對象數(shù)組,例如,你想按照用戶的名字來排序,接下來通過本文給大家介紹在JavaScript 中按字母排序之如何在 JS 中按名稱排序,需要的朋友可以參考下

有時你可能有一個單詞數(shù)組,你想按字母順序(從 a-z)對每個單詞進行排序?;蛘吣憧赡苡幸粋€包含用戶信息(包括名字)的對象數(shù)組,例如,你想按照用戶的名字來排序。

我們可以在 JavaScript 中通過直接使用 sort() 方法或使用比較函數(shù)來實現(xiàn)這個目的。

如果你很著急的話,這里有兩種方法:

// 對一個名字數(shù)組進行排序
names.sort();
// 通過 name 對一個對象數(shù)組進行排序
users.sort(function (a, b) {
  if (a.name < b.name) {
    return -1;
  }
  if (a.name > b.name) {
    return 1;
  }
  return 0;
});

現(xiàn)在讓我們來了解一下我們是如何得出這兩種解決方案的。

如何按字母順序對一個名字數(shù)組進行排序

假設我們有一個名字的數(shù)組:

let names  = ["John Doe", "Alex Doe", "Peter Doe", "Elon Doe"];

我們可以使用 sort() 方法按字母順序對這些名字進行排序:

let sortedNames = names.sort();
console.log(sortedNames);

這將返回一個按字母排序的名字數(shù)組:

["Alex Doe","Elon Doe","John Doe","Peter Doe"]

注意:當一些名字首字母大寫,而其他名字首字母小寫時,那么輸出將是不正確的,因為 sort() 方法將大寫字母放在小寫字母之前:

let names = ["John Doe", "alex Doe", "peter Doe", "Elon Doe"];
let sortedNames = names.sort();
console.log(sortedNames); // ["Elon Doe","John Doe","alex Doe","peter Doe"]

所以你需要確保這些詞的大小寫都是一樣的,否則它就不能按照我們的需求按字母順序返回名字。

如何在 JavaScript 中按姓名的字母順序排列

在現(xiàn)實場景中,我們可能有一個用戶數(shù)組,每個用戶的信息都在一個對象中。這些信息可以是任何與用戶的名字有關的信息,比如說:

let users = [
  {
    name: "John Doe",
    age: 17
  },
  {
    name: "Elon Doe",
    age: 27
  },
  {
    name: "Alex Doe",
    age: 14
  }
];

看一下上面的對象,之前我們直接在數(shù)組上應用 sort() 方法的方式將不會起作用。相反,它將拋出相同的數(shù)組,但項目不會按照我們想要的順序排列。

我們將在使用 sort() 方法的同時使用比較函數(shù)來按名字對這個用戶數(shù)組進行排序。

我們將使用比較函數(shù)來定義一個替代的排序順序。根據(jù)參數(shù)的不同,它返回一個負值、零值或正值:

語法:

function(a, b){return a - b}

當我們把這個比較函數(shù)傳入 sort() 方法時,它根據(jù)我們設定的條件對每個值進行比較,然后根據(jù)返回的值對每個名字進行排序(負數(shù)、零、正數(shù))。

  • 如果結果是負的,a 被排序在 b 之前。
  • 如果結果是正數(shù),則 b 被排序在 a 之前。
  • 如果結果是 0,兩個值的排序順序不做任何改變。

使用上面的例子,我們現(xiàn)在可以這樣將比較函數(shù)和 sort() 方法一起使用:

users.sort(function (a, b) {
  if (a.name < b.name) {
    return -1;
  }
  if (a.name > b.name) {
    return 1;
  }
  return 0;
});
console.log(users);

上面的代碼對每個名字進行比較。如果是大于,它返回 1。如果是小于,則返回 -1。返回的值用于按字母順序排列我們的數(shù)組的值:

[
  {
    name: "Alex Doe",
    age: 14
  },
  {
    name: "Elon Doe",
    age: 27
  },
  {
    name: "John Doe",
    age: 17
  }
]

注意:就像我們之前看到的,這總是根據(jù)字母的大小寫運行,并將大寫字母排在小寫字母之前。

let users = [
  {
    name: "alex Doe",
    age: 14
  },
  {
    name: "Elon Doe",
    age: 27
  },
  {
    name: "John Doe",
    age: 17
  }
];
users.sort(function (a, b) {
  if (a.name < b.name) {
    return -1;
  }
  if (a.name > b.name) {
    return 1;
  }
  return 0;
});
console.log(users);

輸出:

?[
  {
    name: "Elon Doe",
    age: 27
  },
  {
    name: "John Doe",
    age: 17
  },
  {
    name: "alex Doe",
    age: 14
  }
]

總結

在這篇文章中,你已經(jīng)學會了如何在兩種可能的情況下使用 sort() 方法按字母順序排列數(shù)組。

在名字有不同字母大小寫的情況下,最好在使用 sort() 方法之前先將它們轉換為特定的字母大小寫。

到此這篇關于在JavaScript 中按字母排序之如何在 JS 中按名稱排序的文章就介紹到這了,更多相關js按名稱排序內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

最新評論