【问题标题】:sort array of numeric strings with Lodash使用 Lodash 对数字字符串数组进行排序
【发布时间】:2016-01-11 14:33:55
【问题描述】:
_.sortBy(arrData, "rhid");

此代码对数组进行排序,但由于字段“rhid”的值是字符串,因此顺序混乱。 我怎样才能像“rhid”一样在 int 字段中排序。

谢谢

【问题讨论】:

    标签: javascript arrays lodash


    【解决方案1】:

    sortBy 可以与函数一起使用而不是属性名称。

    _.sortBy(arrData, function (obj) {
        return parseInt(obj.rhid, 10);
    });
    

    【讨论】:

    • 如何使用此实现按两个以上字段排序并按 desc 排序?
    • @GunasekaranR - 在这种情况下你可以使用这个:sortBy(arrData, [function(obj) { return parseInt(obj.field1); }, function(obj) { return parseInt(obj.field2 ); }]);
    【解决方案2】:

    这可以使用箭头符号来实现,例如:

    _.sortBy(arrData, (obj) => parseInt(obj.val, 10));
    

    如果你想像@GunasekaranR 那样做不止一个领域,你也可以用箭头符号来做:

    _.sortBy(arrData, [
      (obj) => parseInt(obj.first_val, 10),
      (obj) => parseInt(obj.second_val, 10)
    ]);
    

    第二种方式使用first_val作为主要排序对象,second_val是决胜局。

    【讨论】:

      【解决方案3】:

      如果 rhid 是数字,那么你可以这样做

      orderBy(
            arrData,
            function (o) {
              return new Number(o.rhid);
            },
            ["asc"]
          ),
      

      提到here

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        • 2013-06-29
        • 2015-01-16
        相关资源
        最近更新 更多