Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort by index an array [duplicate]

Look at the code below:

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

      const list = exemples.map((exemple, index, array) => exemple.name)

      console.log(list)

it gives me that array:

["d", "c", "a", "b"]

I would like to respect the index and get a result like that:

["a", "b", "c", "d"]

Sounds like a basic question but I need your help. Thanks.

like image 985
Pierre Trzaska Avatar asked Jul 13 '26 15:07

Pierre Trzaska


1 Answers

Sort the list first, by a custom sort function which will compare the indices, and then map.

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

      const list = exemples.sort((a,b) => a.index - b.index).map((exemple, index, array) => exemple.name)

      console.log(list)
like image 172
Bernd Strehl Avatar answered Jul 16 '26 03:07

Bernd Strehl