使用 Lodash 对数字字符串数组进行排序

sort array of numeric strings with Lodash

本文关键字:数组 排序 字符串 数字字符 Lodash 数字 使用      更新时间:2023-09-26
_.sortBy(arrData, "rhid");

此代码对数组进行排序,但由于字段"rhid"的值是字符串,因此顺序被弄乱了。我怎样才能像"rhid"一样排序,其中 int 字段。

谢谢

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

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

这可以使用箭头符号来实现,如下所示:

_.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 是决胜局。

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

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

这里提到