Google sheets ReferenceError:未定义停止

Google sheets ReferenceError:未定义停止,google-sheets,Google Sheets,基本上,旅行推销员的问题是由一个没有编码经验的白痴来解决的。我的问题是:ReferenceError:stops没有定义 function myFunction() { var df = Maps.newDirectionFinder(); df.setOrigin(String("Großaspacher Straße 10")); df.setDestination(String("Weiherstraße 31")); df.setMo

基本上,旅行推销员的问题是由一个没有编码经验的白痴来解决的。我的问题是:ReferenceError:stops没有定义

    function myFunction() {

var df = Maps.newDirectionFinder();

df.setOrigin(String("Großaspacher Straße 10"));
df.setDestination(String("Weiherstraße 31"));

df.setMode(Maps.DirectionFinder.Mode.DRIVING);
df.setOptimizeWaypoints(true);

for(var i=0; i < stops.length; i++) {
    var addr = stops[i][0];     
    if(addr.length>0) {
        df.addWaypoint(addr);     
    }
}

var directions = df.getDirections();   
var stops_order = directions.routes[0].waypoint_order;

var stop_sequence=71;
for (j = 0; j < stops_order.length; j++) {
    var stop = stops_order.indexOf(j) + 1;
    stop_sequence.push([stop]);   
}

return stop_sequence; 
}


Error: ReferenceError: stops is not defined
函数myFunction(){
var df=Maps.newDirectionFinder();
df.setOrigin(字符串(“Großaspacher Straße 10”);
df.setDestination(字符串(“Weiherstraße 31”);
df.setMode(地图、方向查找器、模式、驾驶);
df.设定航路点(真);
对于(变量i=0;i0){
df.添加航路点(addr);
}
}
var directions=df.getDirections();
var站点顺序=方向。路线[0]。航路点顺序;
var stop_序列=71;
对于(j=0;j
我不明白为什么。 就像我说的,我不知道我在做什么,只是想把这些拼凑起来。所以感谢您的帮助

问题:
  • 变量
    停止
    未定义
  • 您希望使用工作表中的数据并将其分配给变量
    stops
  • 您不能将元素推送到
    stop_sequence
    ,因为您在
    var stop_sequence=71中将其定义为整数
解决方案:
  • 定义名为
    stops
    的变量,并使用SpreadsheetApp类从电子表格中获取数据
  • 改变
    var停止顺序=71
    var停止顺序=[]
您的代码应该如下所示:

function myFunction() {
  var df = Maps.newDirectionFinder();
  df.setOrigin(String("Großaspacher Straße 10"));
  df.setDestination(String("Weiherstraße 31"));
  df.setMode(Maps.DirectionFinder.Mode.DRIVING);
  df.setOptimizeWaypoints(true);

  
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("insert sheetname here");
  //Example of range is A3:C3
  var stops = sheet.getRange("insert range here").getValues();

  for (var i = 0; i < stops.length; i++) {
    var addr = stops[i][0];
    if (addr.length > 0) {
      df.addWaypoint(addr);
    }
  }
  var directions = df.getDirections();
  var stops_order = directions.routes[0].waypoint_order;
  var stop_sequence = [];
  for (j = 0; j < stops_order.length; j++) {
    var stop = stops_order.indexOf(j) + 1;
    stop_sequence.push([stop]);
  }
  return stop_sequence;
}
函数myFunction(){
var df=Maps.newDirectionFinder();
df.setOrigin(字符串(“Großaspacher Straße 10”);
df.setDestination(字符串(“Weiherstraße 31”);
df.setMode(地图、方向查找器、模式、驾驶);
df.设定航路点(真);
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“在此处插入sheetname”);
//范围示例为A3:C3
var stops=sheet.getRange(“在此处插入范围”).getValues();
对于(变量i=0;i0){
df.添加航路点(addr);
}
}
var directions=df.getDirections();
var站点顺序=方向。路线[0]。航路点顺序;
var stop_序列=[];
对于(j=0;j
参考:

您在代码中的某个地方使用了变量
stops
,但该变量未定义。你能附上你的全部代码吗?评论太长了,但我发布了它,请不要使用答案作为评论。您可以通过单击帖子下方的
edit
按钮来编辑上面的帖子。您没有定义变量
stops
。你的代码中应该有
var stops=source of data
,数据源应该返回二维数组。非常感谢你,伙计,我真的非常感谢。忽略最后一个,我把电子表格和工作表搞混了哈哈。但现在它告诉我TypeError:无法读取未定义的属性“waypoint\u order”如何修复它?对我来说似乎很好。尝试打印
directions.routes[0]
的值,并检查其中是否有waypoint\u order对象。您还可以将声明更改为:
var stops\u order=directions.routes[0][“航路点\u order”]更改它不会立即更改结果,
类型错误:无法读取未定义的属性“航路点\顺序”
。它不会记录任何东西,因为我认为它得到了错误,然后停止了,所以我不能打印它,我想?你可以从添加
Logger.log(directions.routes[0])开始下面
var directions=df.getDirections()。这将把
directions.routes[0]
的值打印到编辑器中。另请参阅Allright,因此记录器返回
Info null
,并在
var directions=df.getDirections()处使用断点进行调试吐出这个。我不知道该怎么办?