如何读取对象';在Javascript中使用递归函数时,是否设置属性?
我想知道是否有人能给我指出正确的方向。当我有一个对象时,我通常通过FOR IN循环读取它的属性。因为我创建了这个对象,所以我知道属性是什么,我知道键和它们的值是什么。我想知道是否还有其他方法,如递归方法来读取对象及其属性 下面是一个示例对象:如何读取对象';在Javascript中使用递归函数时,是否设置属性?,javascript,Javascript,我想知道是否有人能给我指出正确的方向。当我有一个对象时,我通常通过FOR IN循环读取它的属性。因为我创建了这个对象,所以我知道属性是什么,我知道键和它们的值是什么。我想知道是否还有其他方法,如递归方法来读取对象及其属性 下面是一个示例对象: var mObj = {}; mObj.mArr = []; mObj.mArr.push({id:['id1','id2','id3']}); mArr.push({days:['Monday','Tuesday','Wednesday','Thursd
var mObj = {};
mObj.mArr = [];
mObj.mArr.push({id:['id1','id2','id3']});
mArr.push({days:['Monday','Tuesday','Wednesday','Thursday']});
mObj.mArr.push({colors:['orange','red','blue','green','yellow','white']});
如您所见,我已经声明了mObj,并且在其中,我已经声明mArr为数组。然后我在mArr中推三个对象:
alert(mObj.mArr.length);
如果我想在对象中循环,我会有这样的东西:
for(var a in mObj.mArr[0])
{
alert(mObj.mArr[0][a]);
}
我想知道我是否可以正确地调用一个函数,并在这里传递恰好是“mObj”的父对象,这个递归函数将通过“mObj”并从头到脚列出它的所有属性
如果您对此有任何意见,我将不胜感激
非常感谢。这里有一个基本的:
如果有一个对象不是函数,请再次调用该函数,否则控制台将记录该值(如果它不是函数)。是,这是可能的。你到底有什么问题?为什么不直接用文字符号写出完整的对象?当你说“列出它的所有属性”时,你是指没有实际用途的字符串输出吗?如果您这样做了,那么只需将对象序列化为JSON。一个函数,递归的,已经编写的,并且输出很好(尽管如果对象的任何属性是函数,它可能会出现问题)。请阅读:还有。Felix,还有时间,我正在从服务器端捕获不是我编写的对象,我只是想把所有的细节都打印出来…更像是有一个实用功能,它可以把刚刚处理过的东西吐出来。乔伊…你说得对。我对你感激不尽。我明天会把它插上,看看我能想出什么,但到目前为止,它似乎是我一直在寻找的。非常感谢没问题,请务必接受一些答案,尽管这里已经解释过了:meta.stackoverflow.com/questions/16721/Joe-非常感谢。我对递归没有太多的经验,它有融化我大脑的倾向,但这绝对是解决我问题的完美空白板!
var mObj = {};
mObj.mArr = [];
mObj.mArr.push({id:['id1','id2','id3']});
mObj.mArr.push({days:['Monday','Tuesday','Wednesday','Thursday']});
mObj.mArr.push({colors:['orange','red','blue','green','yellow','white']});
function r(obj) {
if (obj)
for (var key in obj) {
if (typeof obj[key] == "object")
r(obj[key]);
else if (typeof obj[key] != "function")
console.log(obj[key])
}
return;
}
r(mObj);