gpt4 book ai didi

javascript - 遍历包含数组的对象

转载 作者:行者123 更新时间:2023-11-30 12:43:13 25 4
gpt4 key购买 nike

那是我的 javascript 对象。

var myobj = {
'arr1': ['abc','dsf2','ss4'],
'arr893f': ['839f','mdo9','ks92','kcm8'],
....
}

如何遍历该对象内部数组的所有值?IE。我需要遍历 '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!
});
}
}
}

我认为在 Object.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);
}
});

关于javascript - 遍历包含数组的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23614575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com