【问题标题】:Use index to subset an array in Apps Script使用索引在 Apps 脚本中对数组进行子集化
【发布时间】:2026-02-07 07:50:02
【问题描述】:

我是应用程序脚本的新手(之前是 Matlab 用户)。我正在尝试根据另一个数组“索引”的值对数组“名称”进行子集化。两个数组的长度相同:

names = [["name1"], ["name2"], ["name3"], ["name4"], ["name5"],["name6"],["name7"],["name8"],["name9"],["name10"]];
index = [0,0,1,0,1,0,0,0,0,1]; 

我想对数组“names”进行子集化,以获取“index”值为 1 的名称。我写道:

var subsetNames = names[index];

希望“subsetNames”等于:

[["name3"],["name5"],["name10"]]

代码运行,但“子集名称”仍未定义。如何修改代码以实现子集?谢谢。

【问题讨论】:

  • 我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,请随时告诉我。我想学习解决你的问题。

标签: javascript arrays google-apps-script subset


【解决方案1】:

这个怎么样?我认为您的情况有几个答案。因此,请将此视为其中之一。

示例脚本:

var names = [["name1"], ["name2"], ["name3"], ["name4"], ["name5"], ["name6"], ["name7"], ["name8"], ["name9"], ["name10"]];
var index = [0,0,1,0,1,0,0,0,0,1]; 
var subsetNames = names.filter(function(e, i) {return index[i] == 1}); // [["name3"],["name5"],["name10"]]

注意:

  • 此脚本假设namesindex 的数组长度相同。

参考:

【讨论】: