使用javascript中的快速排序,根据另一个数组对一个数组进行排序

时间:2018-03-10 18:02:50

标签: javascript

我想按照@@'的升序排序ac按此方法排序,但c没有,a在代码末尾只有四个未排序的元素。我应该做些什么改变?

a

1 个答案:

答案 0 :(得分:3)

如果您想从a的相应值中对c进行排序,您可以:

var a = ['e','b','d','a','f','g','c'];
var c = [3, 0, 2, 5, -1, 4, 1 ];
	
var [sortedA, sortedC] = a.map((v,i) => [ v, c[i] ] )   //Pair the a and c
	          .sort((x,y)=>x[1] - y[1])             //Sort the array based on the c value
	          .reduce((c,v) => {
	              c[0].push( v[0] );
	              c[1].push( v[1] );
	              return c;
	          }, [[],[]]);                          //Seperate the a and c

console.log( sortedA );
console.log( sortedC );