Sort one array the same way as another array JavaScript

后端 未结 4 1211
日久生厌
日久生厌 2021-01-12 16:42

I have 2 arrays:

[2, 4, -2, 4, 1, 3]
[\"a\", \"b\", \"c\", \"d\", \"e\", \"f\"]

and I want them to be sorted by the numerical array:

<
4条回答
  •  悲哀的现实
    2021-01-12 17:38

    You could sort the keys of the first array based on their value. This will return an array with indices of the array sorted based on the value of numbers array. Then use map to get the sorted values based on the indices

    const numbers = [2, 4, -2, 4, 1, 3],
          alphabets = ["a", "b", "c", "d", "e", "f"]
    
    const keys = Array.from(numbers.keys()).sort((a, b) => numbers[a] - numbers[b])
    
    const sortedNumbers = keys.map(i => numbers[i]),
          sortedAlphabets = keys.map(i => alphabets[i])
    
    console.log(
      sortedNumbers,
      sortedAlphabets
    )

提交回复
热议问题