在AppsScript中按ID合并两个数组数组

时间:2018-11-05 21:40:34

标签: javascript arrays google-apps-script

我在App Script项目中有两个数组,一个数组包含用户电子邮件及其上次登录日期,另一个数组包含其电子邮件和许可证类型。我想将这两个数组组合成一个数组,其中每个项目都有其电子邮件,上次登录和许可证。

不能保证数组的顺序相同。

示例:

Array 1: [[google.user@domain.com, Google-Apps, 1010020020],[google.user2@domain.com, Google-Apps, 1010020020]
Array 2: [[google.user2@domain.com, 12/31/1969],[google.user@domain.com, 12/31/1969]]

成为

Array 3: [[google.user@domain.com, 12/31/1969, Google-Apps, 1010020020],[google.user2@domain.com, 12/31/1969, Google-Apps, 1010020020]]

我尝试了this postthis post中描述的几种方法,但它们似乎是ES6,运行它们时会引发错误。

1 个答案:

答案 0 :(得分:1)

在es5中,您的代码应如下所示:

var a1 = [['google.user@domain.com', 'Google-Apps', '1010020020'],['google.user2@domain.com', 'Google-Apps', '1010020020']]
var a2 =[['google.user@domain.com', '12/31/1969'],['google.user2@domain.com', '12/31/1969
var a3 = new Array()
for(var i=0;i<a1.length;i++){ 
    a3[i]=new Array(); 
    a3[i][0]=a1[i][0]; 
    a3[i][2]=a1[i][1]; 
    a3[i][3]=a1[i][2]; 
}
for(var i=0;i<a2.length;i++){ 
    for(var j=0;i<a3.length;j++){ 
        if(a3[j][0] == a2[i][0]){ 
            a3[j][1] = a2[i][1]; 
            break; 
        } 
    } 
}