如何在Apps脚本中对二维数组进行排序

时间:2017-05-19 07:20:17

标签: google-apps-script

我有这样的数组。 asd = [[a,3],[b,1],[c,5],[d,2]];

我想从结果数字中对其进行排序,

asd = [[a,5],[b,3],[c,2],[d,1]];

任何人都知道应用脚本代码吗?

2 个答案:

答案 0 :(得分:1)

以下样本怎么样? a,b,c和d用作字符串。这可以在Google Script Editor上执行。

示例脚本:

var asd = [['a',3],['b',1],['c',5],['d',2]];

var result = [[asd[i][0],[i[1] for each (i in asd)].sort(
  function(a,b){
        if( a > b ) return -1;
        if( a < b ) return 1;
        return 0;
})[i]] for (i in asd)];

结果:

[[a, 5.0], [b, 3.0], [c, 2.0], [d, 1.0]]

答案 1 :(得分:0)

假设您想要实现的目标,此代码应该有效:

var arr = [["a",3],["b",1],["c",5],["d",2]];

for (var i = 0; i < arr.length; i++){
 for (var j = i+1; j < arr.length; j++) {
  if (i==arr.length-1) continue;
  var thisItem = arr[i],
      nextItem = arr[j];
  if (thisItem[0] > nextItem[0]) {
    var tempL = nextItem[0];
    nextItem[0] = thisItem[0];
    thisItem[0] = tempL;
  }

  if (thisItem[1] < nextItem[1]) {
    var tempN = nextItem[1];
    nextItem[1] = thisItem[1];
    thisItem[1] = temp;
  }
 }
}