【问题标题】:Another javascript array alphabetical sorting hardtime另一个 javascript 数组按字母顺序排序困难
【发布时间】:2018-02-02 22:26:34
【问题描述】:

我有一个看起来像这样的array,如何在不丢失密钥的情况下按字母顺序对其进行排序?

var items = [
  { 11: 'Edward' },
  { 12: 'Sharpe' },
  { 13: 'Alvin' }
];

【问题讨论】:

  • 所有对象都只有1个键值对吗?
  • 是的,数字是键,名称是值..

标签: 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.valuesitems 数组进行排序。

      const items = [
        { 11: 'Edward' },
        { 12: 'Sharpe' },
        { 13: 'Alvin' }
      ];
      
      items.sort((a, b) => Object.values(a)[0] > Object.values(b)[0]);
      
      console.log(items);

      【讨论】:

      猜你喜欢
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多