Javascript 使用两个数组进行排序

Javascript 使用两个数组进行排序,javascript,arrays,algorithm,sorting,Javascript,Arrays,Algorithm,Sorting,有两个阵列: 第一个包含数字,第二个包含第一个数组值的“权重” 它的工作原理如下: arr1 = [56,65,100,89,180,90]; 数字的“权重”是通过以下方式计算的: 56 = 5+6 = 11; 65 = 6+5 = 11; 100 = 1+0+0 = 1; and so on.. 因此,arr2=[11,11,1,17,9,9] 我的问题是如何根据arr2的值对arr1的值进行排序 我试图修改这个问题的简单冒泡排序,但没有任何改变 函数气泡(arr1、arr2){

有两个阵列: 第一个包含数字,第二个包含第一个数组值的“权重”

它的工作原理如下:

arr1 = [56,65,100,89,180,90];
数字的“权重”是通过以下方式计算的:

 56 = 5+6 = 11;
 65 = 6+5 = 11;
 100 = 1+0+0 = 1; and so on..
因此,
arr2=[11,11,1,17,9,9]

我的问题是如何根据
arr2
的值对
arr1
的值进行排序

我试图修改这个问题的简单冒泡排序,但没有任何改变

函数气泡(arr1、arr2){
var len=arr1.1长度;
对于(变量i=0;iarr2[j+1]){
var-temp=arr1[j];
arr1[j]=arr1[j+1];
arr1[j+1]=温度;
}
}
}
返回arr1;
}
arr1=[56,65,100,89,180,90];
arr2=[11,11,1,17,9,9];

控制台日志(气泡(arr1,arr2))您可以在排序时动态计算重量:

const arr=[56,65100,89180,90];
arr.sort((a,b)=>
(a+“”)。拆分(“”)。减少((和,x)=>和+x,0)-
(b+“”)。拆分(“”)。减少((和,x)=>和+x,0)
);

控制台日志(arr)若要获得预期结果,请使用下面的选项,将arr1与相关逻辑排序

  • 通过比较数字和对arr1进行排序
  • 将数字转换为字符串并将其拆分为数组
  • 使用reduce对所有数字求和,并与数组元素进行比较
  • var arr1=[56,65,100,89,180,90];
    var arr2=[11,11,1,17,9,9];
    console.log(
    arr1.sort(
    (a,b)=>
    A.
    .toString()
    .拆分(“”)
    .reduce((acc,v)=>parseInt(acc)+parseInt(v))-
    B
    .toString()
    .拆分(“”)
    .reduce((acc,v)=>parseInt(acc)+parseInt(v))
    )
    
    );可能的重复必须对两个数组进行排序,而不仅仅是一个数组。否则,数组将开始不匹配,您将得到chaos@JonasWilms如果第二个数组是从第一个数组派生出来的,那么排序arr1就可以单独工作了——为什么不在排序过程中提供一个比较函数并计算“权重”呢?谢谢!我只是觉得箭头功能有点弱,所以我需要更多的练习。