使用 Lodash 对数字字符串数组进行排序
sort array of numeric strings with Lodash
_.sortBy(arrData, "rhid");
此代码对数组进行排序,但由于字段 "rhid" 的值是字符串,所以顺序被打乱了。
我如何排序,好像 "rhid" where int field.
谢谢
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"]
),
提到here
_.sortBy(arrData, "rhid");
此代码对数组进行排序,但由于字段 "rhid" 的值是字符串,所以顺序被打乱了。 我如何排序,好像 "rhid" where int field.
谢谢
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"]
),
提到here