我有一個數組順序排列的如何帶回Java腳本陣列的原有順序
初始順序:
var originalcolumns = [
"es_officer_id",
"es_officer_name",
"es_officer_fname",
"es_bps_title",
"es_department_name",
"es_bps_id",
"es_department_id"
]
var sortedfirst = originalcolumns.sort();
排序sortedfirst陣列後看起來像
[
"es_bps_id",
"es_bps_title",
"es_department_id",
"es_department_name",
"es_officer_fname",
"es_officer_id",
"es_officer_name"
]
數組的一個副本(剝去最後一個數值後的值下劃線)
如果返回true,我會將每條記錄匹配到它的下一個記錄,別名將與您在最終結果中看到的相同。
var withoutlast = [
"es_bps",
"es_bps",
"es_department",
"es_department",
"es_officer",
"es_officer",
"es_officer"
]
var withoutlastsorted = withoutlast.sort();
1:它是瞭解我的表名es_officer所以第一個別名應該是與像(a.es_officer_id),這是至今沒有工作,因爲我按字母順序排列的陣列es_officer_id至關重要。
2:相同的首字母必須具有相同的別名,例如:a.es_officer_id將具有與a.es_officer_name相同的別名,在這種情況下,我也碰壁。如果我不對數組進行排序並添加別名,那麼結果前3個結果具有相同的別名,因爲它們是連續的。但去年4將有FOT前不同的別名:BC,d,E
現在增加了一些別名,以每個項目陣列
var alias = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
var AliasAddedCols = [];
var aliasIndex = 0;
var sameColIndex = 0;
for(var columnName in sortedfirst)
{
AliasAddedCols.push(alias[aliasIndex] +'.'+sortedfirst[columnName]);
if(withoutlast[sameColIndex] !== withoutlast[sameColIndex + 1])
{
aliasIndex ++;
}
sameColIndex++;
}
現在如果我安慰AliasAddedCols最終的結果看起來是這樣的:
[
"a.es_bps_id",
"a.es_bps_title",
"b.es_department_id",
"b.es_department_name",
"c.es_officer_fname",
"c.es_officer_id",
"c.es_officer_name"
]
唯一的問題是我需要最後一個數組的順序,即「AliasAddedCols」與「原始數組」的順序完全相同。
另外別名從es_bps_id這在我的情況下,它是錯誤的,第一別名起始「一」應與頂部3列(es_officer_id,es_officer_name,es_officer_fname)第二別名「B」應與第4項和6(es_bps_title,es_bps_id)和第三別名「C」應與在陣列(項目5和7 es_department_name,es_department_id
'中的Array.sort()'會產生變異的原始數組,所以你最好開始用'.slice()排序()' – Redu
它是什麼,你真正想實現?如果您不想更改數組的順序,請不要對其排序。 – Bergi