Javascript 遍历包含数组的对象

Javascript 遍历包含数组的对象,javascript,loops,object,for-loop,Javascript,Loops,Object,For Loop,这是我的javascript对象 var myobj = { 'arr1': ['abc','dsf2','ss4'], 'arr893f': ['839f','mdo9','ks92','kcm8'], .... } 如何遍历此对象内部数组的所有值? 也就是说,我需要遍历“abc”、“dsf2”、“ss4”、“839f”、“mdo9”、“ks92”和…… 我可以走过去 for (var value in myobj ) { console.log(value);//arr1, arr8

这是我的javascript对象

var myobj = {
'arr1': ['abc','dsf2','ss4'],
'arr893f': ['839f','mdo9','ks92','kcm8'],
 ....
}
如何遍历此对象内部数组的所有值? 也就是说,我需要遍历“abc”、“dsf2”、“ss4”、“839f”、“mdo9”、“ks92”和……

我可以走过去

for (var value in myobj ) {
  console.log(value);//arr1, arr893f
}
但这仍然不是我需要的。 我需要通过遍历对象将
'abc'、'dsf2'、'ss4'、'839f'、'mdo9'、'ks92'、…
放入控制台

注:只有该物体的结构是已知的。我们不知道键名或键值

多谢各位

for(var propName in myobj)
{
    if(myobj.hasOwnProperty(propName)){
        var item = myobj[propName];
        if(item instanceof Array)
        {
            item.forEach(function(arrItem, index){
                //woo!
            });
        }
    }
}
我认为在
对象上创建一个方便的方法可能会有用。prototype

(function(){
    function enumerateProperties(cbHandler, ownProperty){
        ownProperty = typeof(ownProperty) == "boolean" ? ownProperty : true;
        if(typeof(cbHandler) != "function"){
            throw new Error("invalid callback");
        }
        for(var propName in this){
            if((!ownProperty) || this.hasOwnProperty(propName)){
                cbHandler(propName, this[propName]);            
            }
        }
    }
    Object.prototype["enumerateProperties"] =
          Object.prototype["enumerateProperties"] || enumerateProperties;
})();
现在你可以:

var o = {a:1, b:[1, 2, 3], c:3};

o.enumerateProperties(function(propName,propValue){
    console.log(propName);
    if(propValue instanceof Array){
        console.log(propValue.join(", "));
    }
    else{
        console.log(propValue);
    }
});

数组中调用的typeof将返回'object',请尝试检查长度(可能)。是否错过了结束“?谢谢,是的。抱歉@Haradzieniec@Haradzieniec:我加了一点额外的。