如何在Google Apps Script中为表格对象数组新增计算属性value_4
解决方案
你可以通过两种简单方式给每个对象添加value_4属性,下面是具体实现:
方式一:创建对象时直接计算添加
在把每个对象推入数组前,直接计算value_2 + value_3并赋值给value_4:
function getDatabaseAsObjectArray() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('database'); const values = sheet.getDataRange().getValues(); const headers = values[0]; const databaseAsObjectArray = []; for (let i = 1; i < values.length; i++) { const entry = {}; for (let j = 0; j < headers.length; j++) { const key = headers[j]; if (key === '') continue; entry[key] = values[i][j]; } // 计算value_4并添加到当前对象 entry.value_4 = entry.value_2 + entry.value_3; databaseAsObjectArray.push(entry); } // 返回处理后的数组,否则调用函数拿不到结果 return databaseAsObjectArray; }
方式二:生成数组后统一遍历处理
如果想和原有对象创建逻辑分开,也可以在生成完整数组后,逐个给对象添加属性:
function getDatabaseAsObjectArray() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet = ss.getSheetByName('database'); const values = sheet.getDataRange().getValues(); const headers = values[0]; const databaseAsObjectArray = []; for (let i = 1; i < values.length; i++) { const entry = {}; for (let j = 0; j < headers.length; j++) { const key = headers[j]; if (key === '') continue; entry[key] = values[i][j]; } databaseAsObjectArray.push(entry); } // 遍历数组,给每个对象添加value_4 databaseAsObjectArray.forEach(item => { item.value_4 = item.value_2 + item.value_3; }); return databaseAsObjectArray; }
额外提示
如果表格中value_2或value_3可能为空,为避免出现NaN,可以给空值兜底:
entry.value_4 = (entry.value_2 || 0) + (entry.value_3 || 0);
内容的提问来源于stack exchange,提问作者user14155947
相关产品推荐
相关产品推荐

