我需要在for
之外获取Z变量的值,但是当我从循环内部在控制台中打印它时,它给出了正确的值,而当我从循环外部进行打印时,它给出了value的一个值。应该退货的
fetch('http://open.mapquestapi.com/elevation/v1/profile?key=tHXSNAGXRx6LAoBNdgjjLycOhGqJalg7&shapeFormat=raw&latLngCollection='+profile)
.then(r => r.json())
.then(data => {
var Z;
for(var i=0;i<data.elevationProfile.length;i++){
//console.log(data.elevationProfile[i].height);
Z = (data.elevationProfile[i].height);
//console.log(Z);
}
console.log(Z);
答案 0 :(得分:0)
在循环外只能看到一个值的原因是,每次循环时,您都使用=
向Z分配了新的变量
尝试将循环外的Z设置为数组,并将循环push
变量内的Z设置为数组
以后,您将可以使用所有值来控制数组
像这样的东西
fetch('http://open.mapquestapi.com/elevation/v1/profile?key=*CENCOREDKEY*&shapeFormat=raw&latLngCollection='+profile)
.then(r => r.json())
.then(data => {
var Z=[];
for(var i=0;i<data.elevationProfile.length;i++){
//console.log(data.elevationProfile[i].height);
Z.push(data.elevationProfile[i].height);
//console.log(Z);
}
console.log(Z);
答案 1 :(得分:0)
正确,当u console.log在for循环内时,它将显示该数组的所有项目。在您的情况下,每次执行for循环时都将覆盖Z变量,最后Z会由for循环执行最后一项。这就是为什么您获得Z仅具有一个值的原因。
让我知道您想做什么!!!!,
如果要保存高度为value的所有值,则必须使用数组。
fetch('http://open.mapquestapi.com/elevation/v1/profile?key=*CENCOREDKEY*&shapeFormat=raw&latLngCollection='+profile)
.then(r => r.json())
.then(data => {
var Z=[];
for(var i=0;i<data.elevationProfile.length;i++){
//console.log(data.elevationProfile[i].height);
Z.push(data.elevationProfile[i].height);
//console.log(Z);
}
console.log(Z);
其中Z是数组对象,并且在data.elevationProfile数组中包含所有Z height属性。