有了這個數組:JS multidimentionnal數組排序列表
var arr = [];
arr[0] = [1, 'Peter', 3];
arr[1] = [1, 'Mary', 2];
arr[2] = [0, 'David', 5];
arr[3] = [0, 'John', 4];
arr[4] = [0, 'Billy', 1];
這工作得很好:
arr.sort(function (a,b) {
console.log(a[2]);
if (a[2] > b[2]) return 1;
if (a[2] < b[2]) return -1;
return 0;
});
但是像這樣的數組:
var arr = [];
arr[0] = [1, 1, 0, 0, 0];
arr[1] = ['Peter', 'Mary', 'David', 'John', 'Billy'];
arr[2] = [3, 2, 5, 4, 1];
A [2]獲取0 -大衛。
我返回了一切,我真的搞不清楚。 請問,你知道我可以按照arr [2]列表排序第二個數組嗎?
你可能會更好過映射第一個,並在排序後將其轉換回第二個。 – epascarello
有一點需要注意的是,在第一種情況下,您正在對數組「arr」進行排序,而在第二種情況下,您正在對子數組的排序進行排序,所以'arr.sort'永遠不會做到這一點,因爲您並不試圖排序'arr'。正如@epascarello所說,你會更好地將一個映射到另一個。 –
所以,如果我正確地理解了這個問題,你正在嘗試根據array3的值對array1和array2進行排序。這並不是簡單的實現,如果你不想這樣做,我想你會嘗試做一些更容易的事情。 我可以建議你轉置你的矩陣,將它與第一個實現進行排序,然後將其轉置回來。或者你可以實現一個非常特殊的排序,但通過使用.sort(),這是不可能的。 – Alex