IAM使用以下在我的JavaScript代碼功能的Array.sort()是不給所期望的結果
function AlphaSort(sort_type,cat_1,cat_2,cat_nm)
{
var len = dataref.totalrow;
var arr_name = new Array();
for (var i =0; i<len; i++)
{
var t = eval('dataref.mf_scheme['+i+'].'+sort_type);
arr_name[i] = t;
}
arr_name.sort();
if(sort_type!='scheme_name')
{
arr_name.reverse();
}
var j=0;
for (var i =0; i<arr_name.length; i++)
{
var sort_key = arr_name[i];
for (j=i; j < arr_name.length; j++)
{
var next_sort_key = eval('dataref.mf_scheme['+j+'].'+sort_type);
next_sort_key = next_sort_key;
if (sort_key == next_sort_key)
{
break;
}
}
if (i != j)
{
var temp = eval('dataref.mf_scheme['+i+']');
eval('dataref.mf_scheme['+i+'] = dataref.mf_scheme['+j+']');
eval('dataref.mf_scheme['+j+'] = temp');
}
}
var s = '';
for (var i =0; i<len; i++)
{
s += eval('dataref.mf_scheme['+i+'].'+sort_type)+',';
}
if((cat_1 != '') && (cat_2 != '') && (cat_nm != ''))
{
showUser(cat_1,cat_2,cat_nm);
}
else
{
showUser('1','1','all');
}
}
其中showUser僅打印導致陣列
function showUser(cats1,cats2,nam_cat)
{
if((nam_cat=='all') && (cats1 !=1) && (cats2 !=1))
{
document.getElementById("all").style.display='';
document.getElementById("eq").style.display='none';
}
else
{
var len = dataref.totalrow;
var sc_nms = '';
for (var i =0; i<len; i++)
{
var scm_id = eval('dataref.mf_scheme['+i+'].cat_id');
var scm_mnths='';
if((scm_id==cats1) || (scm_id==cats2) || (cats1==1) || (cats2==1))
{
var scm_name = eval('dataref.mf_scheme['+i+'].scheme_name');
var scm_1mnth = eval('dataref.mf_scheme['+i+'].scheme_1_month');
var arrs=new Array(scm_1mnth,scm_3mnth,scm_6mnth,scm_1yr,scm_3yr,scm_5yr,incept,navss);
for (var j =0; j<arrs.length; j++)
{
var vals=arrs[j];
scm_mnths +='<TD class="c3">'+vals+'</TD>';
}
sc_nms +='<TR class="ln hv"><TD class="l">'+scm_name+'</td>'+scm_mnths+'</tr>';
}
}
document.getElementById("eq").style.display='';
document.getElementById('eq').innerHTML = '<TABLE cellpadding="3" class="b bc r w4">'+sc_nms+'</Table>';
document.getElementById("all").style.display='none';
}
}
這裏arr_name.sort() ;被排序的功能,但我的輸出是不正確的
輸出它給是這樣的:
90.45
9.90
81.89
49.67
43.59
202.99
18.10
165.46
111.17
這是不對的。它只是在第一個整數的基礎上排序而不是整數。
正確的輸出將是: -
202.99
165.46
111.17
90.45
81.89
49.67
43.59
18.10
9.90
我應該使用什麼功能,什麼是我現有的代碼問題?????
編輯:
all Schemes 1 mth 3 mth 6 mth 1 yr 3 yr 5 yr
ICICI -4.62 6.68 43.05 80.82 5.84 24.26
Prudential 6.68 345.89 234.76 21.89 -10.23 9.90
這是在我的陣列來的數據object.Now我想,如果用戶點擊1個mnth那麼整個數據應該進行排序1個mnth明智的,如果用戶點擊3年,那麼整個數據應該按照那個排序等等。 現在要記住這個問題,我的代碼出錯了嗎?
和有人downvoted這以及:) – 2009-12-04 07:40:10