![](/img/trans.png)
[英]How to build 2D array when looping through sets of data using Google Apps Script?
[英]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.