【问题标题】:Another javascript array alphabetical sorting hardtime另一个 javascript 数组按字母顺序排序困难
【发布时间】:2018-02-02 22:26:34
【问题描述】:
我有一个看起来像这样的array,如何在不丢失密钥的情况下按字母顺序对其进行排序?
var items = [
{ 11: 'Edward' },
{ 12: 'Sharpe' },
{ 13: 'Alvin' }
];
【问题讨论】:
标签:
javascript
arrays
sorting
jscript
alphabetical
【解决方案1】:
通过使用Object.keys,由于它们只有一个我们不知道的值,我们可以使用长度属性减一来获取实际的键引用。
var items = [
{ 11: 'Edward' },
{ 12: 'Sharpe' },
{ 13: 'Alvin' }
];
items.sort(function(a, b){
var c = Object.keys(a);
var d = Object.keys(b);
return a[c[c.length-1]] > b[d[d.length-1]] ? 1: -1;
}
)
console.log(items);
【解决方案2】:
如果对象只有一个键,那么您可以使用Object.keys 检索该键并进行排序:
var items = [
{ '11': 'Edward' },
{ '12': 'Sharpe' },
{ '13': 'Alvin' }
];
items.sort(function(a, b) {
var akey = Object.keys(a) [0], // get a's key
bkey = Object.keys(b) [0]; // get b's key
return a[akey].localeCompare(b[bkey]); // compare the values using those keys
});
console.log(items);
【解决方案3】:
您可以使用Object.values 对items 数组进行排序。
const items = [
{ 11: 'Edward' },
{ 12: 'Sharpe' },
{ 13: 'Alvin' }
];
items.sort((a, b) => Object.values(a)[0] > Object.values(b)[0]);
console.log(items);