首页 > 解决方案 > 如何返回 false 而不是“TypeError:无法读取属性”?

问题描述

我有一个代码可以找到 A 列中的值并返回该行中的其他列值:

function getCurrentRow(e) {
  var parsedJson = JSON.parse(e.postData.contents);
  var ss = SpreadsheetApp.openById("...");
  var sheet = ss.getSheetByName("List");

  var column = sheet.getRange("A:A");
  var values = column.getValues();
  var row = 0;

  while ( values[row] && values[row][0] !== parsedJson.myValue ) {
    row++;
  }

  if (values[row][0] === parsedJson.myValue) {
    var record = {};

    record['top'] = sheet.getRange((row+1), 2).getValue();
    record['bottom'] = sheet.getRange((row+1), 3).getValue();

    return ContentService.createTextOutput(JSON.stringify(record)).setMimeType(ContentService.MimeType.JSON);
  }
}

它可以工作,但是当它找不到 myValue 时它会返回

TypeError:无法从未定义中读取属性“0”。

在这一行:

if (values[row][0] === parsedJson.myValue) {

我该如何解决这个问题并返回“找不到 myValue”?

标签: javascriptgoogle-apps-script

解决方案


  if (values[row][0] === parsedJson.myValue) {

应该

  if (values[row] && values[row][0] === parsedJson.myValue) {

推荐阅读