作用:把一个对象的数据转换为数组。
基本使用方法:
- Object.keys(obj)——返回一个包含该对象所有的键的数组。(注:返回的为字符串数组。)
- Object.values(obj)——返回一个包含该对象所有的值的数组。
- Object.entries(obj)——返回一个包含该对象所有[key,value]键值对的数组。
- 前提:最后注意:所有的值前提条件都是可枚举的
举例方法的使用:
一、Object.keys()的使用:
1、Object.keys()处理对象数据时:返回可枚举的键组成的数组。
//声明一个对象,
let stu = {
name: '小红',
age: 18,
grade: 7
}
//利用Object.keys();返回一个包含对象中所有的键的数组。
let key = Object.keys(stu);
console.log(key); //打印出的结果为 ['name' ,'age' ,'grade']
//利用toString.call()方法来判断返回的值为数组
console.log(toString.call(key)); //打印出的结果为 [object Array]
key.forEach((item) => {
console.log(item); //打印出的结果为 name, age, class
console.log(stu[item]); //打印出的结果为 小红, 18, 7
})
2、Object.keys()处理数组数据时:返回索引值数组,
//创建一个数组
let arr = ['张三', '李四', '王五', '老六']
let key = Object.keys(arr);
console.log(key); //打印出的结果为 ['0','1','2','3']
console.log(toString.call(arr[0])) //打印出的结果为 [object String]
//利用toString.call()方法来判断返回的值为数组
console.log(toString.call(key)); //打印出的结果为 [object Array]
key.forEach((item) => {
console.log(item); //打印出的结果为 0 ,1 , 2 , 3
console.log(arr[item]); //打印出的结果为 张三 、李四 、王五 、老六
})
注:当我通过toString.call()方法判断返回的数组中值的类型时返回的为字符串类型。
3、Object.keys()处理字符串数据时:返回索引值数组.
//创建一个字符串数据
let str = 'nihao'
let key = Object.keys(str);
console.log(key); //打印出的结果为 ['0','1','2','3','4']
//利用toString.call()方法来判断返回的值为数组
console.log(toString.call(key)); //打印出的结果为 [object Array]
key.forEach((item) => {
console.log(item); //打印出的结果为 0 ,1, 2, 3, 4
console.log(str[item]); //打印出的结果为 n, i, h, a, o
})
二、Object.values()的使用;
1、Object.values()处理对象数据时;返回可枚举的值组成的数组
//声明一个对象,
let stu = {
name: '小红',
age: 18,
grade: 7
}
//利用Object.values(); 返回一个对象中包含所有的值的数组
let value = Object.values(stu)
console.log(value) //打印结果为 ['小红',18,7]
console.log(toString.call(value)) //打印出的结果为[object Array]
2、Object.valuse()处理数组对象数据时;返回原数组.
let arr = ['张三', '李四', '王五', '老六']
let value = Object.values(arr)
console.log(value) //打印结果为 ['张三','李四','王五','老六']
console.log(toString.call(value)) //打印出的结果为[object Array]
3、Object.values()处理字符串数据时:返回单个字符组成的数组。
let str = 'nihao'
let value = Object.values(str)
console.log(value) //打印结果为 ['n','i','h','a','o']
console.log(toString.call(value)) //打印出的结果为[object Array]
三、Object.entires()的使用:
1、Object.entires()处理对象数据时;返回包含每个键和值组成的数组的数组
//声明一个对象,
let stu = {
name: '小红',
age: 18,
grade: 7
}
//利用Object.entires();来获取一个包含key,value的数组
let entires = Object.entries(stu)
console.log(entires)
console.log(toString.call(entires))
打印效果如图:
2、Object.entires()处理数组数据时,返回包含索引值和对应值组成的数组的数组。
let arr = ['张三', '李四', '王五', '老六']
//利用Object.entires();来获取一个包含key,value的数组
let entires = Object.entries(arr)
console.log(entires)
console.log(toString.call(entires))
打印效果如图:
3、Object.entires()处理字符串数据时,返回包含索引值和对应的单个字符组成的数组的数组。
let str = 'nihao'
//利用Object.entires();来获取一个包含key,value的数组
let entires = Object.entries(str)
console.log(entires)
console.log(toString.call(entires))
打印效果如图:
总结
这里特地记录下Object.key() 、Object.values()的基本使用方法,方便在工作中使用Object.key() 、Object.values()会根据对象类型的不同返回不同的参数,特别需要注意的是它们都是返回的数组形式,Object.key()返回的是字符串形式的数组。