javascript - 按字母顺序对JSON排序(最后为空值)

标签 javascript json sorting

我有一个JSON,其格式如下:

account = [
     {"name":"Los Angeles", "country":"USA"},
     {"name":"Boston", "country":"USA"},
     {"name":"", "country":"USA"},
     {"name":"Chicago", "country":"USA"}
]

我试图按字母顺序按字母A-Z排序,最后使用空名称值。

我已经尝试过了,但是,这首先会以空值对A-Z进行排序。
account.sort( function( a, b ) {
    return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
});

最佳答案

account.sort( function( a, b ) {
    if(a.name === "") {
       return 1;
    } else if(b.name === "") {
       return -1;
    } else {
         return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;
    }
});

对于字符串,空字符串被认为是最小值,因此将其作为数组中的第一个元素进行排序。

但是,我们需要根据需求更改默认行为,因此我们必须为其添加额外的逻辑。

现在在排序中,当我们返回-1时,这意味着顺序是正确的,并且是所需的。当我们返回1时,这意味着顺序是相反的,需要交换,而当返回0时,两个对象/值都相同,并且不需要任何操作。

现在,在我们的情况下,我们需要将空字符串移到最后。因此,如果第一个对象/值是空字符串,则将其交换并将其向右移到数组中。并且当第二个对象/值是空字符串时,不需要执行任何操作,因为它必须最后执行。

因此,事情就是这样进行的。

关于javascript - 按字母顺序对JSON排序(最后为空值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30872373/

相关文章:

javascript - 当单选按钮选择使用 angular.js 时如何禁用输入字段

javascript - 使用静态 JSON 数据的整洁解决方案

r - 使用 dplyr 在组内安排

javascript - 按固定值排序对象

python json字典直接访问

c++ - STL 按变量排序,然后按升序排序

javascript - 调试 badaWAC 应用程序

java - Kendo UI 网格 Json 数据未加载

javascript - 回调函数未按预期工作

php - 使用 PHP 将 JSON 数据填充到文本区域中