【问题标题】:How do I sort this Array in alphabetical order in Javascript?如何在 Javascript 中按字母顺序对这个数组进行排序?
【发布时间】:2017-11-23 13:13:06
【问题描述】:

所以我有这个数组:

[[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]], [3, "Half-Eaten Apple"],[7, "Toothpaste"]];

我想根据第二个元素按字母顺序对该数组的元素进行排序。所以我想这样订购:

[[21,“保龄球”],[2,“脏袜子”],[1,“发夹”],[3,“吃了一半的苹果”],[5,“麦克风”]] , [7, "牙膏"]];

我该怎么做才能在 javascript 中完成这项工作?

【问题讨论】:

  • 你尝试了什么?
  • 正如@Nina 指出的那样,您必须确定要按哪些区域设置(字母等)进行排序:用户的浏览器、内容、服务器、站点、站点组织的“总部”……。

标签: javascript arrays sorting


【解决方案1】:

使用适当的数组并使用第二项,您可以使用Array#sortSorting non-ASCII characters 的提示String#localeCompare 来比较字符串。

var array = [[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"], [3, "Half-Eaten Apple"], [7, "Toothpaste"]];

array.sort(function (a, b) {
    return a[1].localeCompare(b[1]);
});

console.log(array);

【讨论】:

  • 您介意更新您对MDN 的引用吗?它比 W3S 更可靠
  • 谢谢!如果您愿意,您还可以在 Array#sort 链接末尾折腾 #Sorting_non-ASCII_characters 哈希以将其直接带到 localCompare 示例
【解决方案2】:
let stuff = [
  [21, "Bowling Ball"],
  [2, "Dirty Sock"],
  [1, "Hair Pin"],
  [5, "Microphone"],
  [3, "Half-Eaten Apple"],
  [7, "Toothpaste"]];

这可以通过使用String.prototype.localeCompare() 方法将数组项按字母顺序排列来轻松完成。

stuff.sort((item1, item2) => item1[1].localeCompare(item2[1]));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 2021-01-19
    • 2016-07-15
    • 2011-10-06
    • 2021-11-24
    • 2018-12-03
    • 2013-05-14
    相关资源
    最近更新 更多