Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于计算的数组中数组的JavaScript排序_Javascript - Fatal编程技术网

基于计算的数组中数组的JavaScript排序

基于计算的数组中数组的JavaScript排序,javascript,Javascript,我有一个小数组。小数组是属于一起的对象的ID 面=[[0,1,2,3]、[4,5,6,7]、[0,3,7,4]、[1,2,5,6]、[0,1,5,4]、[2,3,7,6] 我想根据较小数组中的值的计算对数组面进行排序。每个值代表一个z值 设置: 我有一个名为objects的对象数组 每个对象都有一个名为vectors的向量数组 每个向量有三个坐标:x,y,z 每个对象还有一个名为faces的数组 Faces是向量的较小ID数组。每个小数组都是一组向量 我想做的是根据小数组中表示的z值的平均值

我有一个小数组。小数组是属于一起的对象的ID

面=[[0,1,2,3]、[4,5,6,7]、[0,3,7,4]、[1,2,5,6]、[0,1,5,4]、[2,3,7,6]

我想根据较小数组中的值的计算对数组面进行排序。每个值代表一个z值

设置:

  • 我有一个名为objects的对象数组
  • 每个对象都有一个名为vectors的向量数组
  • 每个向量有三个坐标:x,y,z
  • 每个对象还有一个名为faces的数组
  • Faces是向量的较小ID数组。每个小数组都是一组向量
我想做的是根据小数组中表示的z值的平均值对数组面进行排序

我的尝试基于以下几点:

myArray.sort(function(a,b){
return b-a;
})
这是迄今为止我对对象[I]排序的结果。faces数组:

objects[i].faces.sort(function(a,b){
    var value1=0;
    var value2=0;
    for (var j = 0; j<objects[i].faces[a].length; j++) {
        value1+=objects[i].vectors[faces[a][j]].z;
    }
    for (var j = 0; j<objects[i].faces[b].length; j++) {
        value2+=objects[i].vectors[faces[b][j]].z;
    }
return value1/objects[i].faces[a].length-value2/objects[i].faces[b].length;
})
objects[i].faces.sort(函数(a,b){
var值1=0;
var值2=0;

对于(var j=0;j如果你说faces.sort(函数(a,b)…那么a已经是一个面项,那么为什么要调用面[a]…它的a.length

a
b
是要比较的项,而不是它们的索引。使用

var vectors = objects[i].vectors;
objects[i].faces.sort(function(a,b){
    var value1 = 0,
        value2 = 0;
    for (var j=0; j<a.length; j++)
        value1 += vectors[a[j]].z;
    for (var j=0; j<b.length; j++)
        value2 += vectors[b[j]].z;
    return value1/a.length - value2/b.length;
})
var向量=对象[i]。向量;
对象[i].faces.sort(函数(a,b){
var值1=0,
值2=0;

对于(var j=0;jCan您可以包括
向量的值以及预期的输出吗?
a
b
已经在
面中引用了一个数组。当您说它时,它看起来非常明显,并且工作得很好。谢谢!