如何打印对象中所有的键和值,Object.keys()和Object.values()的使用


如果有这样一个需求,打印对象中所有的键和值:

var person = {
name: '张三',
age: 18,
2: '2',
11: '11'
};
1.使用for in:
for(var key in person){
console.log(key);
}
//2 11 age name

2.使用js提供的方法 Object.keys():
console.log(Object.keys(person));
//["2","11","name","age"]

 

 

 

3.使用js提供的方法 Object.values():
console.log(Object.values(person));
//["2","11","张三","18"]

 

 

4.拓展

  从上面的Object.keys() 打印结果看,打印结果给我们自动排序了,并且和for in 的排序一样。

这是因为 Object.keys在内部会根据属性名key的类型进行不同的排序逻辑。分三种情况:

  1. 如果属性名的类型是Number,那么Object.keys返回值是按照key从小到大排序
  2. 如果属性名的类型是String,那么Object.keys返回值是按照属性被创建的时间升序排序。
  3. 如果属性名的类型是Symbol,那么逻辑同String相同

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM