You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Script嵌套数组异常:NewViewers数组批量更新问题求助

问题解决:让每个instrumentGroups元素拥有独立的NewViewers数组

问题根源很明确:你在第一个循环外定义了newViewer=[],所有被push到instrumentGroups里的对象,它们的NewViewers属性都指向同一个数组的引用。所以不管你给哪个元素的NewViewerspush内容,所有元素都会同步更新。

直接修改第一个循环,把空数组的创建放到循环内部,让每个文件夹对象都持有独立的NewViewers数组:

var fldrViewers;
var instrumentGroups=[], userGoogleAccount;

for (nCounter=0; childFolders.hasNext(); nCounter++){
    childFolder=childFolders.next();
    childFolderName=childFolder.getName();
    childFolderID=childFolder.getId();
    fldrViewers=childFolder.getViewers().map((user) => user.getEmail());
    // 每次循环创建新的空数组,而非复用外部的同一个
    instrumentGroups.push({
        FolderName : childFolderName,
        FolderID : childFolderID,
        FolderViewers : fldrViewers,
        NewViewers : []
    });
}

for (userCounter=1; userCounter<=rRows; userCounter++){
    for (nCounter=0; nCounter<instrumentGroups.length; nCounter++) {
      if (rRange.getCell(userCounter, FOLDER_COL).getValue()==instrumentGroups[nCounter].FolderName){
        userGoogleAccount=rRange.getCell(userCounter,GOOGLE_ACCOUNT_COL).getValue();
        instrumentGroups[nCounter].NewViewers.push(userGoogleAccount);
        break;
      }
    }
}

这样修改后,每个instrumentGroups元素的NewViewers都是独立的数组,后续push操作只会影响对应文件夹的数组,不会再出现所有元素同步更新的问题。

内容的提问来源于stack exchange,提问作者Peter Morris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:23:26