我的數據是這樣排序的數據:有空白或缺口
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