2017-06-20 142 views
0

所以我有此数组:如何在Javascript中按字母顺序对此数组进行排序?

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

我想这个数组按字母顺序的排序元素相应的第二个元素。所以我想这样订购:

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

我该怎么做才能在javascript中完成此操作?

+0

你试过了什么? – karthick

+0

@Nina指出,你必须根据用户的浏览器,内容,服务器,网站,网站组织的“总部”等因素决定谁的区域设置(字母等)。 –

回答

4

如果使用适当的数组并使用第二项,则可以使用Array#sort并提示Sorting non-ASCII characters的用于比较字符串。

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);

+0

你介意更新你对[MDN]的引用吗(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort?v = control)?它比W3S – Marie

+1

@Marie更可靠,刚刚完成。 –

+0

谢谢!如果你需要 – Marie

0
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])); 
相关问题