我有两个数组:
arr1 = [4,2,3,5,1]
arr2 = ['a','b','c','d','e']
如果我对 arr1 应用排序算法(例如按较小的数字),它应该以相同的方式更新 arr2 上的索引(如果 arr1 是 4,则在索引 0 移动到索引 3 之前,索引 0 中 arr2 的值会移动)到索引 3)。
例如。
arr1 = [1,2,3,4,5]
arr2 = ['e','b','c','a','d']
我尝试过使用 JS 排序功能,但没有成功。由于数组中的数字可能重复,因此
indexOf()
不起作用。我觉得我不需要实现自己的排序算法,因为我真的觉得这里可以采用一种优雅的方式。
使用额外的数组应该对你有用,如下所示:
const arr3 = arr1.map((elem,index) => { return [arr1[index], arr2[index]] }).sort((a,b) => a[0] - b[0]); //b-a for desc
arr1 = arr3.map((elem,index) => { return arr3[index][0] });
arr2 = arr3.map((elem,index) => { return arr3[index][1] });