如何一次打印对象中的所有属性/值.JS

How to print all properties/values in an object at once. JS

本文关键字:属性 JS 何一次 打印 对象      更新时间:2023-09-26

所以我们假设我有这个:

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}
var car1 = new Car("VW", "Bug", 2012);
var car2 = new Car("Toyota", "Prius", 2004);
document.write(car1.make, car1.model, car1.year);
document.write(car2.make, car2.mocel, car2.year);

有没有一种更干净的方法来写出对象的所有属性/值?感谢

您可以使用JSON.stringify序列化对象并轻松记录其属性:

console.log(JSON.stringify(car1))

在JavaScript中枚举对象的所有属性:

for (aProperty in yourObject) {
    // do what needed
    // in case you want just to print it:
    console.log(aProperty + "has value: " + yourObject[aProperty]);
}

然而,如果您只是想将对象打印到控制台,那么这个问题可能会对您有所帮助。

从技术上讲,您可以使用一个简单的for循环来遍历所有属性,但这意味着您也可以获得在其祖先中设置的所有属性,因此您可以使用Object.hasOwnProperty来验证此属性是为自己设置的,而不是继承的,并打印出相关属性(或对它们执行某些操作)。

function Car(make, model, year) {
  this.make = make;
  this.model = model;
  this.year = year;
}
var bmw = new Car('VW','Cruiser',1989);
var output = document.getElementById('output');
for(property in bmw) 
  if(bmw.hasOwnProperty(property))  
    output.innerHTML += property + ': ' + bmw[property] + '<br />'
<div id="output"></div>

为什么不使用Object.keys/Object.values,然后适当地添加forEach循环来访问键/值?

  1. Object.keys(Car).forEach(prop=>console.log(prop))//它将打印Car对象的密钥

  2. Object.values(Car).forEach(prop=>console.log(prop))//它将打印Car对象的值

但在嵌套Object的情况下,它不会给出所需的输出。所以继续使用normml for Each循环或传统的循环方法。。。

MDN文档将帮助

你可以使用

for(aVariable in yourObject){
   console.log(aVariable);
}

通过这种方式,您可以看到对象的每个属性