如何一次打印对象中的所有属性/值.JS
How to print all properties/values in an object at once. JS
所以我们假设我有这个:
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循环来访问键/值?
-
Object.keys(Car).forEach(prop=>console.log(prop))//它将打印Car对象的密钥
-
Object.values(Car).forEach(prop=>console.log(prop))//它将打印Car对象的值
但在嵌套Object的情况下,它不会给出所需的输出。所以继续使用normml for Each循环或传统的循环方法。。。
MDN文档将帮助
你可以使用
for(aVariable in yourObject){
console.log(aVariable);
}
通过这种方式,您可以看到对象的每个属性
相关文章:
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- 无法获取属性'Id'使用Knockout.js的未定义或空引用API
- chart.js 2.0为数据集添加了新属性
- 无法读取属性'材料'未定义的Three.js
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- 手动触发ember.js中的属性更改
- 无权访问我的控制器 Angular 中的属性.js 1.3
- 如何在培根中合并两个属性.js
- 如何从高图表动态更新 pointStart 系列属性.js
- 如何为补间分配额外的属性.js ( https://github.com/sole/tween.js/ )
- Ember 对象函数定义中的计算属性.js
- 动态插入文件时触发 onload 属性.js
- 创建新属性 - JS / 边缘动画
- 在 Backbone 中将函数设置为属性.js给了我一个错误,但如果我在初始化方法中设置它,它会起作用
- 在处理中不将“PImage”作为类属性.js
- 动态访问对象属性(JS)
- 迭代javascript对象并动态添加对象属性(JS对象中的键值对)
- IIS6无法获取类型属性;JS替换危险字符