【发布时间】:2014-08-03 17:23:40
【问题描述】:
我想使用下面的方法对 1 列的四维数组进行排序,
var main_arr = [
[]
];
var hdnFromValues = [11,16,12,17,14,18,15];
var hdnToValues = [12,17,13,18,15,19,16];
var hdnSPIDs = [11,12,13,14,0,0,0];
var hdnFlag = [D,E,E,D,A,A,A];
for (var j = 0; j < hdnFromValues.length; j++) {
var temp_arr = [];
var HdnToValue;
temp_arr.push(hdnFromValues[j]);
temp_arr.push(hdnToValues[j]);
temp_arr.push(hdnSPIDs[j]);
temp_arr.push(hdnFlag[j]);
main_arr.push(temp_arr);
temp_arr = null;
}
main_arr.sort(sort_by_col);
hdnFrom = "";
hdnTo = "";
spid = "";
flags = "";
for (var i = 1; i < main_arr.length; i++) {
hdnFrom = hdnFrom.concat(main_arr[i][0], ",");
hdnTo = hdnTo.concat(main_arr[i][1], ",");
spid = spid.concat(main_arr[i][2], ",");
flags = flags.concat(main_arr[i][3], ",");
}
hdnFrom = hdnFrom.substring(0, hdnFrom.length - 1);
hdnTo = hdnTo.substring(0, hdnTo.length - 1);
spid = spid.substring(0, spid.length - 1);
flags = flags.substring(0, flags.length - 1);
alert(hdnFrom);
alert(hdnTo);
alert(spid);
alert(flags);
function sort_by_col(a, b) {
return a[0] - b[0];
}
有时,第 3 列和第 4 列未按照第 1 列正确排列。
有人会帮助我吗?
【问题讨论】:
-
给出你的完整代码和失败案例,什么时候?
-
你按第一个列排序,为什么第 3 或第 4 个排序比偶然的多?
-
@dandavis 排序第一列,基于整行应该改变。
-
@VijayakumarS:是的,行移动了,但是您需要查看您对它进行排序的内容。如果你从不检查后面的列,除了巧合之外,它们怎么会被排序?
-
那至少是一个二维数组,如果不是一维array of (number-indexed) objects
标签: javascript jquery multidimensional-array