我的数据是这样排序的数据:有空白或缺口
var dataset = [
{ "field1":"val1", "field2":"val2", "field3":"34.11" },
{ "field1":"val4", "field2":"val5", "field4":"2/3/2015" },
{ "field1":"val6", "field2":"val7", "field3": "26.37", "field4":"4/2/2015" }
] ;
正如你看到这些数据被丢失在第二行“字段3”,并在第一行中缺少“字段4”,所以我怎么能仅使用JavaScript对这些数据进行排序?如果这不行的话,可以通过循环数据集来输入每一行中缺少的字段?因为我无法控制传入的数据。
我能排序为字符串和数字,但该数据集只有当所有行存在于例如这对于字符串列:
dataset.sort(function (a, b) {
var nameA = a.field1.toUpperCase(); // ignore upper and lowercase
var nameB = b.field1.toUpperCase(); // ignore upper and lowercase
if (nameA < nameB) {
return -1;
}
if (nameA > nameB) {
return 1;
}
return 0;
});
所需的输出是HTML表,但我知道如何生成此表使用Javascript,所以我只是希望能够根据列值类型分别排序每个列asc或desc。例如,对于场3排序ASC应该
var dataset = [
{ "field1":"val4", "field2":"val5", "field4":"2/3/2015" },
{ "field1":"val6", "field2":"val7", "field3": "26.37", "field4":"4/2/2015" },
{ "field1":"val1", "field2":"val2", "field3":"34.11" }
] ;
更新: 我的代码试图基于场3排序,但我得到不正确的排序
dataset.sort(function (a, b) {
var nameA = Number(a.field3);
var nameB = Number(b.field3);
return (nameB - nameA);
});
你能解释一下你如何/要排序呢?什么是期望的输出? – Dekel
我打算在html表格中使用Javascript显示这些数据,并且我想对每列asc或desc进行排序,但是要分别进行更新 – Wel
用所需的输出更新问题。 **排序 – Dekel