Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果数组中的id匹配,则设置行中第一列的值_Javascript_Google Apps Script - Fatal编程技术网

Javascript 如果数组中的id匹配,则设置行中第一列的值

Javascript 如果数组中的id匹配,则设置行中第一列的值,javascript,google-apps-script,Javascript,Google Apps Script,我试图在一个范围内设置复选框。firebase_id数组必须与范围中的列B匹配。如果匹配?将row设置为TRUE。但我有一些随机检查的支票 我做错了什么 function setCheckboxIfValueKinguinIdExist() { const AS = SpreadsheetApp.getActiveSpreadsheet(); const SHEET_TESTING = AS.getSheetByName("Testing");

我试图在一个范围内设置复选框。firebase_id数组必须与范围中的列B匹配。如果匹配?将row设置为TRUE。但我有一些随机检查的支票

我做错了什么

function setCheckboxIfValueKinguinIdExist() {
      const AS = SpreadsheetApp.getActiveSpreadsheet();
      const SHEET_TESTING = AS.getSheetByName("Testing");
      
      let get_firebase_items = getSelectedIdsFromFirebase();
      let firebase_ids = get_firebase_items.map(function(item){return item.kinguinId}); // [ '17','2962','9798']
      let last_row = SHEET_TESTING.getLastRow();
     
       
      let values = SHEET_TESTING.getRange("A2:B"+last_row).getValues();
      let row = 1; 
      for(let a in values) {
        let item = values[a][1];

        if(firebase_ids.includes(item) === true){
           SHEET_TESTING.getRange(row,1).setValue("TRUE");
        }   
     
        row++;
      }
    }
试试这个:

function setCheckboxIfValueKinguinIdExist() {
  const AS = SpreadsheetApp.getActiveSpreadsheet();
  const SHEET_TESTING = AS.getSheetByName("Testing");
  let get_firebase_items = getSelectedIdsFromFirebase();
  let firebase_ids = get_firebase_items.map(function(item){return item.kinguinId}); // [ '17','2962','9798']
  var last_row = SHEET_TESTING.getLastRow();
  var values = SHEET_TESTING.getRange("A2:B"+last_row).getValues();
  var row = 1; 
  values.forEach((r,i)=>{
      if(firebase_ids.includes(r[1])) {
      SHEET_TESTING.getRange(i+2,1).setValue("TRUE");
    }   
  });
}

数据的起始行是第二行。为什么在你的循环中不一样?行=2?它起作用了。现在我知道为什么身份不匹配了。因为值数组中的id是int,而firebase id是string。因此,我将if(firebase_id.includes(r[1])修改为if(firebase_id.includes(r[1].toString())。