js对象取属性值,打印这个对象可以看到这个属性,但是遍历该对象时获取不到key和value

代码:

var layers = map.getLayers().a;
console.log('layers',layers)
for(var i= 1;i<layers.length;i++){
       
     var s = layers[i].getSource().l
     console.log('source.l',s)
     for(let key in s){
     
         console.log(key + '---' + s[key])
     }
}

错误效果:
js对象取属性值,打印这个对象可以看到这个属性,但是遍历该对象时获取不到key和value_第1张图片
js对象取属性值,打印这个对象可以看到这个属性,但是遍历该对象时获取不到key和value_第2张图片
分析:

只打印了s,对s的遍历并没有打印,说明没有获取到任何数据,尝试使用JSON.stringify(s),结果是‘{}’,感觉可能数据是异步的,于是乎加了个定时器,结果就行了

解决方案:

var layers = map.getLayers().a;

for(let i = 1; i < 10; i++) {
     
    clearInterval(i);
}

var i =1;
var timer = setInterval(function(){
     
    // let s = null
    if(i == layers.length) {
     
        clearInterval(timer)
    }else{
     
        let s = layers[i].getSource().l
        console.log('source.l',s)
    }
    i++;
},1000)

你可能感兴趣的:(JavaScript,js)