Javascript 从web应用程序中的筛选数组自动完成
我学习JavaScript和应用程序脚本已经有一段时间了,我被困在这一部分,在过去的几个小时里一直如此 所以我有一个谷歌电子表格作为我的数据源,上面有员工名单和他们所在的城市。现在,他们都通过特定的谷歌账户连接到这个网络应用程序,我想做的是制作一个自动完成列表,但只有来自特定城市的人Javascript 从web应用程序中的筛选数组自动完成,javascript,arrays,object,google-apps-script,google-sheets,Javascript,Arrays,Object,Google Apps Script,Google Sheets,我学习JavaScript和应用程序脚本已经有一段时间了,我被困在这一部分,在过去的几个小时里一直如此 所以我有一个谷歌电子表格作为我的数据源,上面有员工名单和他们所在的城市。现在,他们都通过特定的谷歌账户连接到这个网络应用程序,我想做的是制作一个自动完成列表,但只有来自特定城市的人 function getNames() { var ss = SpreadsheetApp.openById(id); var wsMail = ss.getSheetByName('MAILS');
function getNames() {
var ss = SpreadsheetApp.openById(id);
var wsMail = ss.getSheetByName('MAILS');
var wsAteliers = ss.getSheetByName('ATELIERS')
var dataPerso = wsAteliers.getDataRange().getValues();
var data = wsMail.getDataRange().getValues();
var people = [];
var email = Session.getActiveUser().getEmail();
// TO FIND THE CITY, NO PROBLEMS
for (var i = 0; i < data.length; i++) {
if (data[i][0] == email) {
var atelier = wsMail.getRange('B' + (i + 1)).getValue();
}
}
//RETURNS ARRAY OF NAMES FROM CORRESPONDING CITY
for (var i = 0; i < dataPerso.length; i++) {
if (dataPerso[i][1] == atelier) {
people.push(dataPerso[i][0]);
}
}
return people;
}
我有一个二维数组,第1列有名字,第2列有他们所在的城市。我的函数首先获取他们登录的电子邮件,然后过滤列表以查找存储在变量中的相应城市。这部分很好用
然后,我的函数查看员工列表,并创建一个一维数组,其中仅包含来自该特定城市的姓名
function getNames() {
var ss = SpreadsheetApp.openById(id);
var wsMail = ss.getSheetByName('MAILS');
var wsAteliers = ss.getSheetByName('ATELIERS')
var dataPerso = wsAteliers.getDataRange().getValues();
var data = wsMail.getDataRange().getValues();
var people = [];
var email = Session.getActiveUser().getEmail();
// TO FIND THE CITY, NO PROBLEMS
for (var i = 0; i < data.length; i++) {
if (data[i][0] == email) {
var atelier = wsMail.getRange('B' + (i + 1)).getValue();
}
}
//RETURNS ARRAY OF NAMES FROM CORRESPONDING CITY
for (var i = 0; i < dataPerso.length; i++) {
if (dataPerso[i][1] == atelier) {
people.push(dataPerso[i][0]);
}
}
return people;
}
我得到这个结果:
正如你所看到的,这并不是我想要的结果,它应该更像:
{name1=null,name2=null等..}
我真的迷路了,谁能给我一些指点吗
谢谢,我不确定您的
选项
值是多少,但我确定您的问题是使用选项[v[0]]
而不是选项[v]
,从而导致在访问字符串的第一个字符时使用单个字母
尽管我更喜欢使用fromEntries
来代替这种方法:
function myFunction() {
const array = ["Ben", "John"];
const obj = Object.fromEntries(
array.map(name => [name, null])
)
Logger.log(obj);
}
输出:
参考文献: