将对象的所有属性执行输出到控制台,将子属性转移到新行。
如果属性的类型为Function,则不输出到控制台,而是调用该函数。
let data = {
a: {a: 1,
b: {a: 3,b: 10},
c: 14},
b: {f: function () {console.log("this is function");},
a: "123"}
};
showNodes(data);
function showNodes(element) {
console.log(element);
}
最佳答案
遍历对象
如果要遍历一个对象,可以这样做:
for (var prop in obj) {
obj[prop] = 'xxx';
}
如果对象具有多个维度(例如您的示例),则可以这样执行:
function doSomethingWithAValue(obj, callback) {
Object.keys(obj).forEach(function(key) {
var val = obj[key];
if (typeof val !== 'object') {
callback(val);
} else {
doSomethingWithAValue(val, callback);
}
});
}
该代码是从这样的答案:Traverse through multi-dimentional object
检查功能
要检查元素是否为函数,可以使用typeof。
typeof obj[key] === 'function'
希望这可以帮助
祝好运 :)