簡體   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