Javascript TypeError:undefined不是对象

Javascript TypeError:undefined不是对象,javascript,undefined,typeerror,Javascript,Undefined,Typeerror,使用某些Javascript脚本获取此错误:TypeError:undefined不是对象(正在计算“results[j].distance.text”) 尝试按照其他帖子中的建议添加“var results=[]”,但没有帮助 function CalculatedRecommededDistance() { event.preventDefault(); var origin = document.getElementById('pick_up_address').value; var

使用某些Javascript脚本获取此错误:TypeError:undefined不是对象(正在计算“results[j].distance.text”)

尝试按照其他帖子中的建议添加“var results=[]”,但没有帮助

function CalculatedRecommededDistance() {

event.preventDefault();

var origin = document.getElementById('pick_up_address').value;
var destination = document.getElementById('drop_off_address').value;
var geocoder = new google.maps.Geocoder();
var service = new google.maps.DistanceMatrixService();

var results = [];


service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: 'DRIVING',
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false,
avoidFerries: false

}, function(response, status) {
var originList = response.originAddresses;
var destinationList = response.destinationAddresses;
var outputDiv = document.getElementById('outputRecommended');
outputDiv.innerHTML = '';

//Display distance recommended value
for (var i = 0; i < originList.length; i++) {
  var results = response.rows[i].elements;
  for (var j = 0; j < results.length; j++) {
    outputDiv.innerHTML += results[j].distance.text + ' in ' +
      results[j].duration.text + '<br>';
  }
}
});
}
函数calculatedRecommendedDistance(){
event.preventDefault();
var origin=document.getElementById('pick\u up\u address')。值;
var destination=document.getElementById('drop\u off\u address')。值;
var geocoder=new google.maps.geocoder();
var service=new google.maps.DistanceMatrixService();
var结果=[];
service.getDistanceMatrix({
来源:[来源],
目的地:[目的地],
travelMode:‘驾驶’,
unitSystem:google.maps.unitSystem.METRIC,
避免:错误,
避免:错误,
避免错误:错误
},功能(响应、状态){
var originList=response.originAddresses;
var destinationList=response.destinationaddress;
var outputDiv=document.getElementById('outputRecommended');
outputDiv.innerHTML='';
//显示距离建议值
对于(变量i=0;i';
}
}
});
}

Javascript类型错误:undefined不是对象
,这意味着您试图将
undefined
值视为
对象
。(简单地说:尝试从未定义的
值获取数据)


您可以使用
安全地忽略此错误。As
结果[j]?.distance?.text
。但这并不是你将得到的预期结果。因此,首先
console.log(result)
并查看预期对象是否在该输出中。

在获取结果之前,检查结果是否具有距离和持续时间属性:

function CalculatedRecommededDistance() {

event.preventDefault();

var origin = document.getElementById('pick_up_address').value;
var destination = document.getElementById('drop_off_address').value;
var geocoder = new google.maps.Geocoder();
var service = new google.maps.DistanceMatrixService();

var results = [];


service.getDistanceMatrix({
origins: [origin],
destinations: [destination],
travelMode: 'DRIVING',
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false,
avoidFerries: false

}, function(response, status) {
var originList = response.originAddresses;
var destinationList = response.destinationAddresses;
var outputDiv = document.getElementById('outputRecommended');
outputDiv.innerHTML = '';

//Display distance recommended value
for (var i = 0; i < originList.length; i++) {
  var results = response.rows[i].elements;
  for (var j = 0; j < results.length; j++) {
   if (result[j].hasownproperty("distance") && result[j].hasownproperty("duartion")){
    outputDiv.innerHTML += results[j].distance.text + ' in ' +
      results[j].duration.text + '<br>';
  }
}
}
});
}
函数calculatedRecommendedDistance(){
event.preventDefault();
var origin=document.getElementById('pick\u up\u address')。值;
var destination=document.getElementById('drop\u off\u address')。值;
var geocoder=new google.maps.geocoder();
var service=new google.maps.DistanceMatrixService();
var结果=[];
service.getDistanceMatrix({
来源:[来源],
目的地:[目的地],
travelMode:‘驾驶’,
unitSystem:google.maps.unitSystem.METRIC,
避免:错误,
避免:错误,
避免错误:错误
},功能(响应、状态){
var originList=response.originAddresses;
var destinationList=response.destinationaddress;
var outputDiv=document.getElementById('outputRecommended');
outputDiv.innerHTML='';
//显示距离建议值
对于(变量i=0;i';
}
}
}
});
}

可能表示:
结果[j]。距离未定义。将(结果)记录在循环中,以查看您是否得到了预期的结果。或者循环之前的响应。注:
var结果=[]对代码没有影响。请尝试
console.log(results)
下的
var results=response.rows[i].elements
并查看变量
results
中的内容您正在使用两个结果变量。一个在函数中,另一个在for循环中。如果有帮助的话,尝试使用另一个变量。非常感谢。添加“?”将删除错误。不过,从你的评论中可以感觉到,这只是掩盖了潜在的问题。我从console.log(result)中得到以下结果:在有问题的代码行:[log][{距离:{文本:“639公里”,值:638918},持续时间:{文本:“7小时41分钟”,值:27676},状态:“OK”}(1)