如何在Javascript中使用递归函数时读取对象的属性
How to read an object's properties while using a recursive function in Javascript?
我想知道是否有人能给我指出正确的方向。当我有一个对象时,我通常通过FOR IN LOOP读取它的属性。因为我知道属性是什么因为我创建了对象,我知道键和它们的值是什么。我想知道是否有任何其他的方法,如递归的方法来读取对象及其属性。
下面是一个例子的对象:
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:
内推入三个对象- id <
- 天/gh>颜色
如果我想知道mArr的长度,我会这样写:
alert(mObj.mArr.length);
如果我想循环遍历这个对象,我就写成这样:
for(var a in mObj.mArr[0])
{
alert(mObj.mArr[0][a]);
}
我想知道我是否可以只是正确的一个函数,并传递父对象,碰巧是"mObj"在这里,这个递归函数将通过"mObj",并列出它的所有属性从头到脚。
我将感谢您对此的任何建议。
这是一个基本的示例:
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);
如果对象不是函数,则再次调用该函数,否则console记录非函数的值
相关文章:
- 读取HTML对象标记中的数据
- 使用cookie读取html对象的id
- 使用 Javascript 读取 JSON 对象(错误)
- 在 JQuery 中读取 Java 对象
- 当我不知道密钥的名称时,如何读取 JSON 对象
- 读取 JSON 对象
- 将 JSON 文件读取到对象的全局数组中 - 范围和同步问题
- 仅通过 GET 请求拉取对象的某些部分
- 使用 javascript 从工作目录读取 JSON 对象(无 jQuery)
- Django:从QueryDict读取JSON对象数组
- jQuery cookie插件读取JSON对象
- 如何在原型中读取json对象
- 如何在php中读取FormData对象
- 如何在页面呈现之前从服务器读取Javascript对象
- 读取javascript对象
- Cordova -如何保存和读取JSON对象从本地存储
- 将JS数组转换为JSON对象,但无法在java servlet端读取JSON对象
- 无法读取属性'#<对象>'未定义的获取错误
- JS从本地文件读取JSON对象
- 在PHP返回的JS/JQuery中读取JSON对象