这可能是一个愚蠢的问题,因为我是新手,可能会遗漏一些简单的事情。
我想比较两个使用getValues()获取的单元格。 我想知道为什么我的if语句没有触发。
这是我的代码
for (j in phonesData) {
var phonerow = phonesData[j];
Logger.log('phonerow: ' + phonerow);
for (k in unSubdata) {
var unsubrow = unSubdata[k];
Logger.log('unsubrow: ' + unsubrow);
if (phonerow===unsubrow) {
Logger.log('equals');
phonesSheet.getRange(startRow + Number(j), 1).setValue("");
}
}
}
以下是我的评论日志。似乎if应该触发!
[17-08-12 21:19:34:054 PDT] phonerow: (626) 234-7711
[17-08-12 21:19:34:055 PDT] unsubrow: (626) 235-3150
[17-08-12 21:19:34:055 PDT] unsubrow: (626) 235-3152
[17-08-12 21:19:34:055 PDT] phonerow: (626) 235-3150 <These are the same!
[17-08-12 21:19:34:056 PDT] unsubrow: (626) 235-3150 <These are the same!
[17-08-12 21:19:34:056 PDT] unsubrow: (626) 235-3152
答案 0 :(得分:0)
我认为你会发现它以这种方式运作。如果从getValues()获得它,它就是一个二维数组。
function theirfunction()
{
for (j in phonesData) {
var phonerow = phonesData[j];
Logger.log('phonerow: ' + phonerow);
for (k in unSubdata) {
var unsubrow = unSubdata[k];
Logger.log('unsubrow: ' + unsubrow);
if (phonerow[0]===unsubrow[0]) {
Logger.log('equals');
phonesSheet.getRange(startRow + Number(j), 1).setValue("");
}
}
}
}
我实际上是用这个版本来解决的。
function myFunction()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var r0=sh.getRange(1,1,sh.getLastRow(),1);
var r1=sh.getRange(1,2,sh.getLastRow(),1);
var vA=r1.getValues();
var vB=r0.getValues();
for(var j=0;j<vA.length;j++)
{
for(var k=0;k<vB.length;k++)
{
Logger.log('vB[' + k + '][0]=' + vB[k][0] + ' and ' + 'vA[' + j + '][0]=' + vA[j][0]);
if(vA[j][0]==vB[k][0])
{
Logger.log('equals');
}
}
}
}