当前位置: 首页 > 面试题库 >

按属性名称对JavaScript对象进行排序

萧亦
2023-03-14
问题内容

我已经寻找了一段时间,想要一种对Javascript对象进行排序的方法,如下所示:

{
    method: 'artist.getInfo',
    artist: 'Green Day',
    format: 'json',
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716'
}

并按名称的字母顺序排序以获得:

{
    api_key: 'fa3af76b9396d0091c9c41ebe3c63716',
    artist: 'Green Day',
    format: 'json',
    method: 'artist.getInfo'
}

我找不到任何可以做到这一点的代码。谁能给我些帮助吗?


问题答案:

根据定义,键在对象中的顺序是未定义的
,因此您可能无法以适应未来发展的方式进行操作。相反,您应该考虑在实际向用户显示对象时对这些键进行排序。无论它在内部使用什么排序顺序都没有关系。

按照惯例,大多数浏览器将按添加键的顺序保留对象中键的顺序。因此,您可以执行此操作,但不要期望它始终有效:

function sortObject(o) {
    var sorted = {},
    key, a = [];

    for (key in o) {
        if (o.hasOwnProperty(key)) {
            a.push(key);
        }
    }

    a.sort();

    for (key = 0; key < a.length; key++) {
        sorted[a[key]] = o[a[key]];
    }
    return sorted;
}


 类似资料:
  • 问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对

  • 问题内容: 我已经使用AJAX获得了以下对象并将它们存储在数组中: 如何仅使用JavaScript 创建一个函数以按属性 升序 或 降序 对对象进行排序? 问题答案: 按价格升序对房屋进行排序: 或在ES6版本之后:

  • 问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排

  • 我最近开始编程,所以这可能会变得很容易。我在排序我的对象时遇到了困难。我有一个带有姓名、出生日期和电话号码的对象。就像Object[0][0]="John"Object[0][1]="10/10/2010"Object[0][0]="900000000"与其他几个人一样。所以我的困难是按姓名排序并保留出生日期和电话号码以及姓名。谢谢。

  • 问题内容: 我正在尝试找出对javascript对象的属性名称有效的内容。例如 b [‘-^ colour’]无效,但在所有浏览器中都存在古怪的现象,我不应该相信它会继续向前发展 b [‘-^ colour’]是完全有效的,但它的形式只能以这种方式访问​​-(受支持,所以对象也许可以用作地图?) 还有别的 顺便说一句,在javascript中,全局变量可能在顶层声明为 但也可以(据我所知)与 以下

  • 问题内容: 我想按属性排序。这是我的代码… 现在我想按属性将其排序,例如在另一个活动中。但是我不知道该怎么做。有人知道吗? 问题答案: 您需要实现,例如: 然后像这样排序: