Javascript 为什么我的返回行[0]==userId.matches(userId);不';我什么也不显示?

Javascript 为什么我的返回行[0]==userId.matches(userId);不';我什么也不显示?,javascript,string,google-apps-script,Javascript,String,Google Apps Script,我正在尝试创建一个按名称搜索产品的工具,但我有一些错误。 具体来说,我有一个谷歌表,有两列,一列是产品名称,另一列是股票编号。 当我使用该工具时,仅当搜索的字符串与包含Google工作表的字符串完全相同时才显示结果,但我希望获得包含表单中引入的字符串的所有结果 这里有我拥有的两个文件的代码:一个用于表单,另一个用于js代码 var myGoogleSheetURL= “保密”; var myGoogleSheetName=“HIDDENFORSECURITY”; 函数doGet(){ var

我正在尝试创建一个按名称搜索产品的工具,但我有一些错误。 具体来说,我有一个谷歌表,有两列,一列是产品名称,另一列是股票编号。 当我使用该工具时,仅当搜索的字符串与包含Google工作表的字符串完全相同时才显示结果,但我希望获得包含表单中引入的字符串的所有结果

这里有我拥有的两个文件的代码:一个用于表单,另一个用于js代码

var myGoogleSheetURL=
“保密”;
var myGoogleSheetName=“HIDDENFORSECURITY”;
函数doGet(){
var template=HtmlService.createTemplateFromFile('formulario');
返回template.evaluate().setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
}
函数接收表单(表单){
var userId=form.userId;
返回搜索数据(userId);
}
函数searchData(用户ID){
var sheet=getSpreadSheet(myGoogleSheetURL,myGoogleSheetName);
var rowsResult=工作表
.getRange(1,1,sheet.getLastRow(),sheet.getLastColumn())
.getValues()
.过滤器(功能(行){
返回行[0]==userId;
});
var firstRow=rowsResult[0];
变量用户={
id:第一行[0],
电子邮件:第一行[1],
电话:第一排[2],
};
var result=JSON.stringify(用户);
返回结果;
}
函数getSpreadSheet(url、sheetName){
var ss=SpreadsheetApp.openByUrl(url);
var sheet=ss.getSheetByName(sheetName);
报税表;
}

股票搜索
:根{
--原色:#4caf50;
}
身体{
文本对齐:居中;
字体系列:“Helvetica”,“Arial”,无衬线;
}
输入{
字体大小:16px;
}
输入[type=“text”]{
边界:无;
边框底部:2px实心变量(--原色);
利润率:10px;
填充:10px;
文本对齐:居中;
}
输入[type=“button”]{
背景色:var(--原色);
边界:无;
颜色:白色;
填充:16px 32px;
文字装饰:无;
利润率:10px 2px;
光标:指针;
}
输入[type=“button”]:禁用{
背景色:#达达达;
}
隐蔽性


函数formSubmit(){ document.getElementById(“divResponse”).innerHTML=“搜索…”; google.script.run .withSuccessHandler(onSuccess) .withFailureHandler(onFailure) .接收表格(文件表格[0]); 禁用输入(); } 函数onSuccess(响应){ var user=JSON.parse(响应); document.getElementById(“divResponse”).innerHTML=user.email; 启用输入(); } 函数onFailure(){ //波内门萨杰恩分区 document.getElementById(“divResponse”).innerHTML=“未找到产品”; 启用输入(); } 函数禁用输入(){ document.getElementById(“btnSend”).disabled=true; document.getElementById(“inputUserId”).disabled=true; } 函数启用输入(){ document.getElementById(“btnSend”).disabled=false; document.getElementById(“inputUserId”).disabled=false; } 函数clearDiv(){ document.getElementById(“divResponse”).innerHTML=“”; }
答案 正如我在代码中看到的,行[0]是列的第一个值。请记住,该方法返回
Object[][]——一个二维值数组

因此,您可能正在比较单元格的错误位置

假设这是您的工作表:

+---+---------+------------+
|   |    A    |     B      |
|---|---------|------------|
| 1 | userID1 | someValue1 |
|---|---------|------------|
| 2 | userID2 | someValue2 |
|---|---------|------------|
| 3 | userID3 | someValue3 |
|---|---------|------------|
| 4 | userID4 | someValue4 |
+---+---------+------------+
在这种情况下,行[0]的值将分别为userID1、userID2、userID3和userID4。因此,userID参数不是字符串或与范围内的任何值都不匹配

另一方面,如果您有如下所示的图纸:

+---+------------+------------+------------+------------+
|   |      A     |      B     |      C     |      D     |
|---|------------|------------|------------|------------|
| 1 | userID1    | userID2    | userID3    | userID4    |
|---|------------|------------|------------|------------|
| 2 | someValue1 | someValue2 | someValue3 | someValue4 |
+---+------------+------------+------------+------------+
这里,行[0]的值将是userID1和someValue1。这意味着您正在比较不同的值

工具书类

userId.matches(userId)
在您的代码中的任何地方都不存在。嗨,迭戈,谢谢您的简短回复。你有理由,在我最后的评论中,你有最后的js代码更新。我假设你会说西班牙语。如果是这样的话,你可以将你的问题用西班牙语发布到