javascript:对具有对象的对象进行排序并读取它们

javascript: sorting through objects that have objects and reading them

本文关键字:对象 排序 读取 javascript      更新时间:2023-09-26

此代码如何读取对象,并能够读取其中的对象:

var book = {
    "main title": "Javascript",
    "sub-title": "Def Guide",
    "for": "all audiences",
    author: {
        firstname: "David",
        surname: "Fatagans"
    }
};
for (propName in book){
    console.log("key: " + propName + " value: " + book[propName]);
    if (typeof book[propName] === "object"){
        for (innerObject in book[propName]){
            console.log("key: " + innerObject + "value: " + book[propName][innerObject])
        }
    }
}

一种方法是将代码放入函数中并递归调用,类似于:

function printObject(obj) {
  for (var propName in obj) {
    console.log("key: " + propName + " value: " + obj[propName]);
    if (typeof obj[propName] == "object") {
        printObject(obj);
    }
  }
}

上面还将显示对象的[[Prototype]]链上的可枚举属性。要忽略这些,请使用hasOwnProperty测试:

  if (obj.hasOwnProperty(propName)) {
    // propName is not inherited
  }

将主机对象(例如DOM元素)传递给函数时要小心,需要对这些对象采取额外的预防措施。