将对象的所有属性执行输出到控制台,将子属性转移到新行。

如果属性的类型为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'


希望这可以帮助

祝好运 :)

10-08 07:58
查看更多