在实际工作中经常拿到了一个对象类型的返回值,但是并不知道这个对象内部的属性,或者需要拿到对象的所有属性;
ECMA Script5 引入了Object.keys()方法,它返回的是一个所有属性组成的数组,成员是参数对象自身的所有可遍历(enumerable)属性的键名
传入未知对象:
var data={name:'wade',age:18,gender:'male',fava:'swim',addr:'NO.1'};
console.log(Object.keys(data));//["name", "age", "male", "fava", "addr"]
Object.keys(data).map((key,item)=>{
console.log(`${key} = ${data[key]}`) //属性=属性值
});
传入字符串:
var str = 'abcdefg';
console.log(Object.keys(obj)); //[0,1,2,3,4,5,6] 返回字符串索引数组
扩展
Object.values()
Object.values方法返回一个数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值。
let obj = {name:'wade',age:18,gender:'male',fava:'swim',addr:'NO.1'}
console.log(Object.values(obj)) //['wade', 18,'male', 'swim', 'NO.1']
Object.entries()
Object.entries方法返回一个数组,具体为一个二维数组,成员是参数对象自身的(不含继承的)所有可遍历( enumerable )属性的键值对数组。
let obj = {name:'wade',age:18,gender:'male',fava:'swim',addr:'NO.1'}
console.log(Object.entries(obj))
//[
[’name‘, 'wade'],
['age', 18],
['gender', 'male'],
['fava', 'swim'],
['addr', 'NO.1']
]
ps:其实这篇blog是很多年前写的了,题目就是“js中获取未知对象中的键值”,当时不懂什么叫Object.keys(), 自己找到了这么一个方法,就顺手记录了一下
最近看到评论后,看了一下文章写的很low,且只写了keys(),顺手补充一下,题目就不改了,方便帮到更多像我当时有这个需求的开发者