lodash SortBy对象内容
我有这样的对象数组:
var quantityPricing = [ { quantity: 1, cost: 0.5 }, { quantity: 100, cost: 0.45 }, { quantity: 1000, cost: 0.25 }, { quantity: 500, cost: 0.35 } ];
我正在尝试按照数量升序排列这个数组的内容,所以我期待的结果应该是:
[ { quantity: 1, cost: 0.5 }, { quantity: 100, cost: 0.45 }, { quantity: 500, cost: 0.35 }, { quantity: 1000, cost: 0.25 } ]
因此我试图使用lodash命令:
_.sortBy(quantityPricing, ['quantity']);
但不幸的是,函数返回的结果似乎只能按数量中的第一个数字sorting,例如:
{ "quantity": 1, "cost": 0.5 }, { "quantity": 100, "cost": 0.45 }, { "quantity": 1000, "cost": 0.25 }, { "quantity": 500, "cost": 0.35 }
我不明白为什么最后会有500个,除非它是按照第一个数字sorting? 一旦我的数组被sorting,500应该在100之后。
任何帮助将不胜感激。
Lodash sortBy不修改原始数组,它应该返回一个新的数组。 你打印原始数组?
testing这个代码,它的工作原理:
var arr = _.sortBy(quantityPricing, 'quantity'); console.log(arr);
结果:
[ { quantity: 1, cost: 0.5 }, { quantity: 100, cost: 0.45 }, { quantity: 500, cost: 0.35 }, { quantity: 1000, cost: 0.25 } ]
你的代码实际上工作(如@drinchev指出)。
- 转到https://lodash.com/docs/ (将lodash作为全局variables加载)
- 打开浏览器的Javascript控制台。
-
粘贴这个代码,并返回:
_.sortBy([ { quantity: 1, cost: 0.5 }, { quantity: 100, cost: 0.45 }, { quantity: 1000, cost: 0.25 }, { quantity: 500, cost: 0.35 } ], ['quantity']);
它看起来像这样: