【问题标题】:Sort first dimension of two dimensional array only Google Script仅对二维数组的第一维进行排序 Google Script
【发布时间】:2019-07-08 15:05:44
【问题描述】:

我正在尝试仅对二维数组的第一个维度进行排序

我有

arr = [a,b,c,a,b,c,a,b,c]

arr1 = arr.sort() --> arr1 = [a,a,a,b,b,b,c,c,c]

result = transpose([arr1,arr]) 

这给了

result = [[[a],[a]],[[a],[a]],[[a],[a]],[[b],[b]],[[b],[b]],[[b],[b]],[[c],[c]],[[c],[c]],[[c],[c]]]

但我需要(并且预期)

result = [[[a],[a]],[[a],[b]],[[a],[c]],[[b],[a]],[[b],[b]],[[b],[c]],[[c],[a]],[[c],[b]],[[c],[c]]]

谢谢

【问题讨论】:

  • this,你会看到当你对arr进行排序时,arrarr1都会被排序.

标签: arrays sorting google-apps-script


【解决方案1】:

您需要对数组进行实际克隆,arr 正在按照您正在执行的操作进行排序。

试试这个:

arr = [a,b,c,a,b,c,a,b,c]

arr1 = arr.slice(0);
arr1.sort();

result = transpose([arr1,arr]) 

我的测试是有限的,因为转置不是 GAS 功能,您没有包含它。

实际上,这个,它似乎工作:

function transpose(a)
{
  return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}

【讨论】:

    猜你喜欢
    • 2012-04-03
    • 1970-01-01
    • 2019-01-08
    • 2013-08-17
    • 2017-05-25
    • 2014-06-07
    • 2022-01-10
    • 2018-08-17
    • 1970-01-01
    相关资源
    最近更新 更多