JavaScript 二維數組排序問題
仅有的幸福
仅有的幸福 2017-06-12 09:27:27
0
4
794
[['10','8'],['11','4'],['18','7'],['7','6'],['8','7'],['9','5']]

JavaScript 這樣的陣列怎麼弄成
[['7','6'],['8','7'],['9','5'],['10',' 8'],['11','4'],['18','7']]
這樣的順序排列

大神

仅有的幸福
仅有的幸福

全部回覆(4)
我想大声告诉你

array = [['10','8'],['11','4'],['18','7'],['7','6'],['8',' 7'],['9','5']]
function sortNumber(a,b){return a[0]-b[0]}
let newArray = array.sort(sortNumber)

newArray 應該就是你要的結果了

代言

雷雷

Ty80

你這個二維數組的排列的結果,好像是用的數組中的每個元素(數組)中的第一個下標的元素去比較的,那就轉化成一個​​一維數組排序不就不好了嗎?一維數組排好序,再將原二維數組利用index對應上一維數組排序。
邏輯實現想法:
var twoArray = [['10','8'],['11','4'],['18','7'],['7','6'], ['8','7'],['9','5']];

    var oneArray = [];
    twoArray.map(function (item ,index) {
        oneArray.push({value: item[0], index: index});
    });
    console.log(oneArray);
    function sortNumber (a, b) {
        return a.value - b.value;
    }
    console.log(oneArray.sort(sortNumber));
    // 此时的oneArray已排好序
    var newTwoArray = [];
    oneArray.map(function (item) {
        newTwoArray.push(twoArray[item.index]);
    });
    console.log(newTwoArray);// 即你要的排序
黄舟

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板