在循环之外获得价值

时间:2019-03-04 09:11:46

标签: javascript

我需要在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);

2 个答案:

答案 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属性。