1.遍历一个对象得到一个数组:
(1)使用forEach进行遍历:
var queryData = {
name: 'zhangsan',
data: '20211212'
}
Object.keys(queryData).forEach((k) => {
console.log(queryData[k]) //[name,data]
})
(2)使用map进行遍历
var queryData = {
name: 'zhangsan',
data: '20211212'
}
Object.keys(queryData).map((k) => {
console.log(queryData[k]) //[name,data]
})
2.如何使用Object.keys取到一个对象的第几个key值:
Object.keys(queryData)[0]//name
Object.keys(queryData)[1]//data
3.如何使用Object.keys判断一个对象是否为空:
if(Object.keys(queryData).length ===0){
console.log('空对象') //空对象
}
4.Object.keys()和Reflect.ownKeys()的区别
var obj={
a:1,
b:2
}
Object.defineProperty(obj,'method',{
value:function(){
console.log('hahaha');
},
enumerable:false
})
console.log(Object.keys(obj))//[a,b]
console.log(Reflect.ownKeys(obj))//[a,b,method]
//通过上述可以看出Object.keys()返回属性key,但不包括不可枚举的属性,Reflect.ownKeys()返回所有属性key
5.Object.keys()、Object.values()、Object.entries()
(1)处理对象返回可枚举的属性数组
(2)处理数组,返回索引值数组
let arr=['1','2','3','4']
console.log(Object.keys(arr))//['0','1','2','3']
(3)处理字符串,返回索引值数组
let str='helloworld'
console.log(Object.keys(str))//["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]
(4)Object.values()返回一个数组
let obj={
foo:'bar',
bba:20
}
console.log(Object.values(obj))//["bar", 20]
(5)Object.entries()返回一个数组
let obj={
foo:'bar',
bba:20
}
console.log(Object.entries(obj))// ["foo", "bar"] ["bba", 20]
(6)Object.entries()能够将对象转成真正的map
let obj={
foo:'bar',
bba:20
}
const map=new Map(Object.entries(obj))
console.log(map) //{"foo" => "bar", "bba" => 20}