繁体   English   中英

如何对代表谷歌应用程序脚本中不同数据集的嵌套数组进行排序?

[英]How can I sort a nested array representing different data sets in google apps script?

请帮助我了解如何对嵌套数组进行排序,该数组看起来像下面代码中所示的数组。

var arr2 = [
            [["a",1,10,4],["a",3,6,7]],[["a",44,34,10]],
            [["b",11,31,12],["b",110,88,77],["b",55,66,30]],
            [["c",12,36,18],["c",18,66,71],["c",52,45,89]]
           ];

在我的情况下,每个字母代表我想单独分析的特定产品类型数据集。 因此,对我来说,对每个“产品类型数组”进行单独排序很重要。 同样重要的是要知道,“产品类型数组”的数量并不固定为三个。 它可以或多或少。 所以代码应该足够灵活以处理可变数量的“产品类型数组”。

在我的示例中,假设产品类型标识符之后的第一个数值是我想用于排序的值。 我怎样才能做到这一点?

我知道排序 function 如何在不太复杂的情况下工作,但无法弄清楚如何将其应用于上述数据。

var arr2 = [
            ["a",1,10,4],["a",3,6,7],["a",44,34,10]
           ];

var newArr2 = arr2.sort(function(r1,r2) {
  var a = r1[1];
  var b = r2[1];

  return a-b;
});

谢谢你的帮助!


20/05/20 编辑:

一个更真实的数据示例,实际上与我的数据匹配。

  var arr4 = [[["hansa bank - blau", "hansa bank - blau blau", 1, 10, 9], ["hansa bank - blau", "hansa bank - blau blau", 3, 6, 7], ["hansa bank - blau", "hansa bank - blau blau", 44, 34, 10]], 
              [["hansa bank - grün", "hansa bank - grün grün", 11, 31, 105], ["hansa bank - grün", "hansa bank - grün grün", 110, 88, 77], ["hansa bank - grün", "hansa bank - grün grün", 55, 66, 30]], 
              [["hansa bank - rot", "hansa bank - rot rot", 12, 36, 33], ["hansa bank - rot", "hansa bank - rot rot", 18, 66, 12], ["hansa bank - rot", "hansa bank - rot rot", 52, 45, 89]]];

您可以迭代并为每个数组应用排序。

 var arr2 = [[["a", 1, 10, 4], ["a", 3, 6, 7]], [["a", 44, 34, 10]], [["b", 11, 31, 12], ["b", 110, 88, 77], ["b", 55, 66, 30]], [["c", 12, 36, 18], ["c", 18, 66, 71], ["c", 52, 45, 89]]]; arr2.forEach(a => a.sort(({ 1: a }, { 1: b }) => a - b)); console.log(arr2);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM