Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Sắp xếp chuỗi có dấu chấm thập phân trong JavaScript


Giả sử chúng ta có mảng chuỗi như sau:

const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];

Cần viết hàm nhận mảng như vậy. Hàm sắp xếp mảng theo thứ tự tăng dần (như người thường thấy).

Điều này có nghĩa chuỗi có '.0', theo sau '.1', '.2', v.v. Sau khi sắp xếp, mảng sẽ như:

const output = [ '.0', '.1', '.2.1', '.2, '.3', '.4', '.4.1', '.5', '.5.1.5' ];

Ví dụ

Mã thực hiện như sau:

const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ]; 
const compare = (a, b) => { 
    if (a === b) { 
        return 0 
    }; 
    const aArr = a.split("."), bArr = b.split("."); 
    for (let i = 0; i < Math.min(aArr.length, bArr.length); i++) { 
        if (parseInt(aArr[i]) < parseInt(bArr[i])) { 
            return -1 
        }; 
        if (parseInt(aArr[i]) > parseInt(bArr[i])) { 
            return 1 
        }; 
    } 
    if (aArr.length < bArr.length) { 
        return -1 
    }; 
    if (aArr.length > bArr.length) { 
        return 1 
    }; 
    return 0; 
}; 
arr.sort(compare); 
console.log(arr);

Kết quả

Kết quả trong console sẽ là:

[ 
    '.0', '.1', 
    '.2', '.2.1', 
    '.3', '.4', 
    '.4.1', '.5', 
    '.5.1.5' 
]