1.Object.values是将对象的属性值转化为数组,Object.values()返回一个数组,其元素是在对象上找到的可枚举属性值。属性的顺序与通过手动循环对象的属性值所给出的顺序相同。
Object.values(obj);参数obj:被返回可枚举属性值的对象。
let obj = {
name:"张三",
hobby:"跳舞",
isShow:true,
}
Object.values(obj); //["张三","跳舞",true]
2.Object.keys是将对象的属性转化为数组,Object.keys()返回的是一个数组
Object.keys(obj);参数obj:要返回其枚举自身属性的对象
//1. 当参数是对象,返回可枚举的属性数组
let obj = {
name:"张三",
hobby:"跳舞",
isShow:true,
}
console.log(Object.keys(obj)); //["name","hobby","isShow"]
//2. 当参数是数组,返回索引值数组
let arr = [1,4,5,2,7,9];
console.log(Object.keys(arr)); //["0","1","2","3","4","5"]
//3. 经常使用循环,获取对象的属性值
let obj1={
color:"yellow",
water:"矿区水",
food:"面包",
}
Object.keys(obj1).map((item,index)=>{
console.log(obj1[item]); //yellow,矿区水,面包
})
//4. 当参数是字符串,返回索引值数组
let str = "asn拉拉";
console.log(Object.keys(str)); //['0', '1', '2', '3', '4']
3.Object.assign()用于对象的合并,将源对象的所有可枚举属性 复制到目标对象,是浅拷贝。
Object.assign(target,source);
第一个参数是目标对象,后面的是源对象,源对象的参数可以是多个
如果目标对象与源对象有同名属性,则后面的属性会覆盖前面的属性
如果只有一个参数,即目标对象,则会返回该对象
如果参数不是对象,则会先转化为对象再返回
如果参数是undefined和null,它们会报错,这是由于undefined和null无法转成对象
4.Array.from()伪数组转化为数组
let likeArr = {
0:'a',
1:'b',
2:'c',
3:'d',
4:'e'
}
let arr11 = Array.from(likeArr); //['a', 'b', 'c', 'd','e']
经常与数组去重一起使用
let arr3=[1,1,4,7,7,7,9];
let newArr = Array.from(new Set(arr3)); //[1, 4, 7, 9]