Javascript 如果数组中的id匹配,则设置行中第一列的值
我试图在一个范围内设置复选框。firebase_id数组必须与范围中的列B匹配。如果匹配?将row设置为TRUE。但我有一些随机检查的支票 我做错了什么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");
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())。