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

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

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

有時(shí)你可能有一個單詞數(shù)組,你想按字母順序(從 a-z)對每個單詞進(jìn)行排序。或者你可能有一個包含用戶信息(包括名字)的對象數(shù)組,例如,你想按照用戶的名字來排序。

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

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

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

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

如何按字母順序?qū)σ粋€名字?jǐn)?shù)組進(jìn)行排序

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

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

我們可以使用 sort() 方法按字母順序?qū)@些名字進(jìn)行排序:

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

這將返回一個按字母排序的名字?jǐn)?shù)組:

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

注意:當(dāng)一些名字首字母大寫,而其他名字首字母小寫時(shí),那么輸出將是不正確的,因?yàn)?nbsp;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í)場景中,我們可能有一個用戶數(shù)組,每個用戶的信息都在一個對象中。這些信息可以是任何與用戶的名字有關(guān)的信息,比如說:

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

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

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

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

語法:

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

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

  • 如果結(jié)果是負(fù)的,a 被排序在 b 之前。
  • 如果結(jié)果是正數(shù),則 b 被排序在 a 之前。
  • 如果結(jié)果是 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);

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

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

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

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
  }
]

總結(jié)

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

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

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

相關(guān)文章

最新評論