Object.values,Object.keys,Object.assign,Array.from的区别

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]

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值