Dr.J
|
發表於 2011-5-30 08:39 PM |
感謝各位的回覆,不過還是沒有辦法比較有效的把他整個拆出來,只好放棄了Orz
| |
siva
|
發表於 2011-5-28 11:39 PM |
引用: Dr.J寫到:
大大,請問一下,如果我要照種類跟幣別分類的話? 金額可以不用理他Orz
最主要是要種類跟幣別分開@@
上面寫了呀? . 用三維排序就 OK 了呀...
var 資料陣列[ 總項數 ] = new Array(2);
ArrayData[ 0 ][0] = "交通 ";
ArrayData[ 0 ][1] = "NTD ";
ArrayData[ 0 ][2] = 100;
.....
....
....
// 三維排序 ( 種類 幣别 金額 )
ArrayData.sort(
function(x, y){
return x[0] == y[0] ? (x[1] == y[1] ? x[1] - y[1] : x[2] - y[2] ) : x[0] - y[0]
}
);
很久沒寫 java 了. 忘了字串可不可以直接減法比較. 不行就自己改成字串比較式.
不要金額的話. 就自己代入前面寫二維排序就好了
| |
Dr.J
|
發表於 2011-5-28 11:28 PM |
大大,請問一下,如果我要照種類跟幣別分類的話? 金額可以不用理他Orz
最主要是要種類跟幣別分開@@
引用: siva寫到:
引用: Dr.J寫到:
對呀,用sql明明就很好做Orz,不過用程式碼來寫我突然想不到啥方法
本來想弄個12個陣列出來的說
程式是要用Java寫的,是不是有什麼集合可以拿來做呢@@?
[Dr.J 在 2011-5-28 10:58 AM 作了最後編輯]
寫成 java 二維排序大致如下:
(依幣別, 金額排序)
資料陣列.sort(
function(x, y){
return 幣別x == 幣別y ? 金額x - 金額y : 幣別x - 幣別y
}
);
三維寫法一樣.
資料陣列.sort(
function(x, y){
return 1維x == 1維y ? (2維x == 2維y ? 3維x - 3維y : 2維x - 2維y ) : 1維x - 1維y
}
);
要幾維都可以. 一直代進去就 OK 了
| |
Dr.J
|
發表於 2011-5-28 09:10 PM |
這樣也ok的,只要能分開就好了^^
懇請大大似教m(_ _)m
引用: 陽だまり寫到:
引用: Dr.J寫到:
想跟各位大大請教一下
小弟有個二維陣列的資料
種類 幣别 金額
交通 NTD 100
伙食 NTD 200
雜費 RMB 100
住宿 USD 300
伙食 RMB 400
雜費 RMB 200
.
.
種類總共有4種,幣別種共有3種
我要轉成
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
RMB 200
USD 300
==========================
不好意思請問一下
為什麼結果要是
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
RMB 200
USD 300
==========================
像底下這樣不行嗎
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
USD 300
RMB 200
==========================
| |
陽だまり
|
發表於 2011-5-28 04:02 PM |
引用: Dr.J寫到:
想跟各位大大請教一下
小弟有個二維陣列的資料
種類 幣别 金額
交通 NTD 100
伙食 NTD 200
雜費 RMB 100
住宿 USD 300
伙食 RMB 400
雜費 RMB 200
.
.
種類總共有4種,幣別種共有3種
我要轉成
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
RMB 200
USD 300
==========================
不好意思請問一下
為什麼結果要是
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
RMB 200
USD 300
==========================
像底下這樣不行嗎
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
USD 300
RMB 200
==========================
| |
siva
|
發表於 2011-5-28 11:26 AM |
引用: Dr.J寫到:
對呀,用sql明明就很好做Orz,不過用程式碼來寫我突然想不到啥方法
本來想弄個12個陣列出來的說
程式是要用Java寫的,是不是有什麼集合可以拿來做呢@@?
[Dr.J 在 2011-5-28 10:58 AM 作了最後編輯]
寫成 java 二維排序大致如下:
(依幣別, 金額排序)
資料陣列.sort(
function(x, y){
return 幣別x == 幣別y ? 金額x - 金額y : 幣別x - 幣別y
}
);
三維寫法一樣.
資料陣列.sort(
function(x, y){
return 1維x == 1維y ? (2維x == 2維y ? 3維x - 3維y : 2維x - 2維y ) : 1維x - 1維y
}
);
要幾維都可以. 一直代進去就 OK 了
| |
Dr.J
|
發表於 2011-5-28 10:52 AM |
對呀,用sql明明就很好做Orz,不過用程式碼來寫我突然想不到啥方法
本來想弄個12個陣列出來的說
程式是要用Java寫的,是不是有什麼集合可以拿來做呢@@?
[Dr.J 在 2011-5-28 10:58 AM 作了最後編輯]
| |
Ralse
|
發表於 2011-5-28 10:40 AM |
我用MySQL居多,所以二維陣列頂多只知道流程
是我的話大概會先把NTD RMB USD三個先用case搭配forloop存成另外三個陣列
然後對每個陣列的種類再做成獨立的陣列
之後從這些獨立的陣列用forloop每三個做一次輸出這樣
第二種方法是先將整個二維陣列針對幣別做泡泡排序
然後記下哪幾個array value是NTD RMB USD三個變換的地方
之後就用for loop搭配case條件去一比一比比較然後整理成想要的表格
最後一口氣輸出這樣
我覺得用mysql很快就能解決的問題,用其他語言真的要寫好多code @@
| |
Dr.J
|
發表於 2011-5-28 08:55 AM |
想跟各位大大請教一下
小弟有個二維陣列的資料
種類 幣别 金額
交通 NTD 100
伙食 NTD 200
雜費 RMB 100
住宿 USD 300
伙食 RMB 400
雜費 RMB 200
.
.
種類總共有4種,幣別種共有3種
我要轉成
=========================
交通 金額 伙食 金額 雜費 金額 住宿 金額
NTD 100 NTD 200
RMB 400 RMB 100
RMB 200
USD 300
==========================
上面的資料要把四個項目都分出來,並且每一行的幣別必須一致,不然就新增一行
請問這個有沒有比較好的方法可以處理呢Orz,如果是資料庫的話應該可以用Group by處理,但是這種二維陣列突然一時之間想不到辦法
小的資質愚頓,想請問各位大大有沒有什麼好方法,先謝謝了m(_ _)m
[Dr.J 在 2011-5-28 08:59 AM 作了最後編輯]
| |