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

Sắp xếp theo chỉ số của mảng trong JavaScript


Giả sử chúng ta có mảng đối tượng sau:

const arr = [ 
    { 
        'name' : 'd', 
        'index' : 3 
    }, 
    { 
        'name' : 'c', 
        'index' : 2 
    }, 
    { 
        'name' : 'a', 
        'index' : 0 
    }, 
    { 
        'name' : 'b', 
        'index' : 1 
    } 
];

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 theo thuộc tính index. Sau đó ánh xạ mảng đã sắp xếp thành mảng chuỗi, mỗi chuỗi là giá trị name tương ứng.

Đầu ra cuối cùng sẽ là:

const output = ["a", "b", "c", "d"];

Ví dụ

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

const arr = [ 
    { 
        'name' : 'd', 
        'index' : 3 
    }, 
    { 
        'name' : 'c', 
        'index' : 2 
    }, 
    { 
        'name' : 'a', 
        'index' : 0 
    }, 
    { 
        'name' : 'b', 
        'index' : 1 
    } 
]; 
const sortAndMap = (arr = []) => { 
    const copy = arr.slice(); 
    const sorter = (a, b) => { 
        return a['index'] - b['index']; 
    }; 
    copy.sort(sorter); 
    const res = copy.map(({name, index}) => { 
        return name; 
    }); 
    return res; 
}; 
console.log(sortAndMap(arr));

Kết quả

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

[ 'a', 'b', 'c', 'd' ]