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

在javascript中使用快速排序,根据另一个数组对一个数组进行排序,javascript,Javascript,我想按照c的升序对a进行排序c按此方法排序,但a不按此方法排序,a在代码末尾只有四个未排序的元素。我应该做什么改变 var a = ['e','b','d','a','f','g','c']; function quick_Sort(origArray,a) { var i; var length = origArray.length; if (origArray.length <= 1) { return [origArray, a]; } else { va

我想按照
c
的升序对
a
进行排序
c
按此方法排序,但
a
不按此方法排序,
a
在代码末尾只有四个未排序的元素。我应该做什么改变

var a = ['e','b','d','a','f','g','c'];
function quick_Sort(origArray,a) {
 var i;
 var length = origArray.length;
 if (origArray.length <= 1) { 
    return [origArray, a];
 } else {

    var left = [];
    var right = [];
    var left1 = [];
    var right1 = [];
    var newArray = [];
    var newArray1 = [];
    var pivot = origArray.pop();
    var pivot1 = a.pop();

    for (i = 0; i < length-1; i++) {
        if (origArray[i] <= pivot) {
            left.push(origArray[i]);
    left1.push(a[i]);
        } else {
            right.push(origArray[i]);
    right1.push(a[i]);
        }
    }
    return [newArray.concat((quick_Sort(left, left1)[0]), pivot, (quick_Sort(right, right1)[0])),newArray1.concat((quick_Sort(left, left1)[1]), pivot1, (quick_Sort(right, right1)[1]))];
 }
}

var c = [3, 0, 2, 5, -1, 4, 1 ];

console.log("Original array: " + c);
console.log("Original array: " + a);
var e = quick_Sort(c,a);
c = e[0];
a = e[1];
console.log("Sorted array: " + c);
console.log("Sorted array: " + a);
var a=['e','b','d','a','f','g','c'];
功能快速排序(origArray,a){
var i;
变量长度=origaray.length;

如果(origArray.length如果要从
c
的相应值对
a
进行排序,可以:

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]])//将a和c配对
.sort((x,y)=>x[1]-y[1])//根据c值对数组进行排序
.减少((c,v)=>{
c[0]。推(v[0]);
c[1]。推(v[1]);
返回c;
},[[],[]);//分开a和c
控制台日志(sortedA);

console.log(sortedC);
如果要从
c
的相应值对
a
进行排序,可以:

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]])//将a和c配对
.sort((x,y)=>x[1]-y[1])//根据c值对数组进行排序
.减少((c,v)=>{
c[0]。推(v[0]);
c[1]。推(v[1]);
返回c;
},[[],[]);//分开a和c
控制台日志(sortedA);

console.log(sortedC);
“我想按照c的升序对a进行排序”这部分对我来说不是很清楚。正如在你的问题中排序的“c”将是[-1,0,1,2,3,4,5]。那么在这种情况下,“a”应该排序什么?
a
将按照与
c
排序相同的顺序进行排序。
a
将是
['a'、'b'、'c'、'd'、'e'、'f'、'g']
“我想按照c的升序对a进行排序”这部分对我来说不是很清楚。正如在你的问题中,排序的'c'应该是[-1,0,1,2,3,4,5]。那么在这种情况下,
a
将按照与
c
相同的顺序进行排序。
a
将是
[a'、'b'、'c'、'd'、'e'、'f'、'g']
什么是
b
这里?@aqwusjaro为了避免混淆,我在sortOn js排序中将变量重命名为
x
y
,需要比较两个变量。这是一个无需排序
c
的文档。此脚本进行排序。@aqwusjaro请检查代码。这将返回sortedA和sortedC什么是
b
这里?@aqwusjaro为了避免混淆,我在sortOn js排序中将变量重命名为
x
y
,需要比较两个变量。这是一个无需排序
c
的文档。此脚本进行排序。@aqwusjaro请检查代码。这将返回sortedA和sortedC