按字母顺序对数组进行排序

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将学习如何使用 JavaScript 根据给定属性按字母顺序对对象数组进行排序。我们将使用 Array.prototype.sort() 方法和 String.prototype.localeCompare() 方法来比较给定属性的值。这将使我们能够根据需求轻松地按升序或降序对数组进行排序。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") subgraph Lab Skills javascript/variables -.-> lab-28618{{"`按字母顺序对数组进行排序`"}} javascript/data_types -.-> lab-28618{{"`按字母顺序对数组进行排序`"}} javascript/arith_ops -.-> lab-28618{{"`按字母顺序对数组进行排序`"}} javascript/comp_ops -.-> lab-28618{{"`按字母顺序对数组进行排序`"}} end

如何在 JavaScript 中根据给定属性按字母顺序对数组进行排序

要在 JavaScript 中根据给定属性按字母顺序对对象数组进行排序,请执行以下步骤:

  1. 打开终端/SSH 并输入 node 以开始练习编码。
  2. 使用 Array.prototype.sort() 根据给定属性对数组进行排序。
  3. 使用 String.prototype.localeCompare() 比较给定属性的值。

以下是一个你可以使用的示例代码片段:

const alphabetical = (arr, getter, order = "asc") =>
  arr.sort(
    order === "desc"
      ? (a, b) => getter(b).localeCompare(getter(a))
      : (a, b) => getter(a).localeCompare(getter(b))
  );

你可以使用对象数组和返回要排序属性的 getter 函数来调用 alphabetical 函数。以下是一个示例用法:

const people = [{ name: "John" }, { name: "Adam" }, { name: "Mary" }];
alphabetical(people, (g) => g.name);
// [ { name: 'Adam' }, { name: 'John' }, { name: 'Mary' } ]
alphabetical(people, (g) => g.name, "desc");
// [ { name: 'Mary' }, { name: 'John' }, { name: 'Adam' } ]

总结

恭喜你!你已经完成了按字母顺序排序数组的实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程