在Node.JS中对数据进行sorting

我正在使用Node.JS和MongoDB。 我已经创build了一个CSV文件的报告,这是我的代码,

function buildListCsvContent() { var array = []; var counter = 0; for (var i = 0; i < vm.student.length; i++) { var row = { No: counter + 1 , Registration_Number: "'" + student.registrationNumber.toString() , Name: student.firstName + ' ' + student.lastName } array.push(row); counter++ } } var args = { data: array }; downloadCSV(args); 

我怎样才能按注册编号sorting这个报告?

您可以使用sortfunction对数组进行sort

首先,截断数字以删除' ,然后使用Number对象将该值转换为Number

以下是带有示例数据的代码,我已经采用了较短版本的数组来演示。

 var array = []; array.push({Registration_Number: "'1"}, {Registration_Number: "'11"}, {Registration_Number: "'12"}, {Registration_Number: "'-5"}, {Registration_Number: "'8"} ); array.sort((x,y) => { var xInt = new Number(x.Registration_Number.substring(1,x.length)); var yInt = new Number(y.Registration_Number.substring(1,x.length)); return xInt - yInt; }); console.log(array); 

这里有一个方法:

 for (var i = 0; i < vm.student.length; i++) { var row = { No: counter + 1 , Registration_Number: "'" + student.registrationNumber.toString() , Name: student.firstName + ' ' + student.lastName , reg_no: student.registrationNumber // Added this key to use in sorting } array.push(row); counter++ } 

使用array.sort方法:

 function compareFunction (a, b) { // Here a and b are the two values in any particular instance of comparison // a is put before b if return condition is true, not swapped if condition is false // return <condition> return a.reg_no > b.reg_no // For ascending return a.reg_no < b.reg_no // For descending } array.sort(compareFunction) //array is sorted at this point 

我build议你玩转回来的条件,以获得良好的工作。

Interesting Posts