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]

ArrayObject都是JavaScript中的数据类型,它们在JavaScript中都非常重要,被广泛使用。下面将分别详细介绍它们的特点和用法。 ## Array Array是一种有序的集合类型,它可以存储任意类型的数据,包括数字、字符串、对象等。数组在JavaScript中是一个对象,它可以通过数字索引访问其中的元素。数组的长度是动态的,可以随时添加或删除元素。 ### 创建数组 创建数组有两种方法: 1. 字面量方式: ```javascript let arr = [1, 2, 3]; ``` 2. 构造函数方式: ```javascript let arr = new Array(1, 2, 3); ``` ### 访问数组元素 使用数组索引可以访问数组元素,数组索引从0开始,最大索引为数组长度减1。 ```javascript let arr = [1, 2, 3]; console.log(arr[0]); // 1 console.log(arr[1]); // 2 console.log(arr[2]); // 3 ``` ### 数组常用方法 数组提供了很多常用方法,如下: - push/pop:向数组末尾添加/删除一个元素 - shift/unshift:向数组头部添加/删除一个元素 - splice:在数组中插入/删除/替换元素 - slice:截取数组的一部分 - concat:合并两个数组 - join:将数组转换成字符串 - sort/reverse:对数组进行排序/翻转 ```javascript let arr = [1, 2, 3]; arr.push(4); // [1, 2, 3, 4] arr.pop(); // [1, 2, 3] arr.splice(1, 1); // [1, 3] arr.slice(1); // [3] let arr2 = [4, 5]; arr.concat(arr2); // [1, 3, 4, 5] console.log(arr.join('-')); // 1-3 arr.sort(); // [1, 3] arr.reverse(); // [3, 1] ``` ## Object ObjectJavaScript中的一种复合数据类型,它可以存储多个属性,每个属性都有一个名称和一个值,值可以是任意类型的数据,包括数字、字符串、数组、对象等。ObjectJavaScript中的一种基本的数据结构,它在JavaScript中用于存储和传递数据。 ### 创建对象 创建对象有两种方法: 1. 字面量方式: ```javascript let obj = { name: 'Tom', age: 18 }; ``` 2. 构造函数方式: ```javascript let obj = new Object(); obj.name = 'Tom'; obj.age = 18; ``` ### 访问对象属性 使用点号或方括号可以访问对象属性,点号访问属性时,属性名必须是一个合法的标识符,方括号访问属性时,属性名可以是任意字符串。 ```javascript let obj = { name: 'Tom', age: 18 }; console.log(obj.name); // Tom console.log(obj['age']); // 18 ``` ### 对象常用方法 对象提供了很多常用方法,如下: - Object.keys(obj):返回一个包含对象属性名称的数组 - Object.values(obj):返回一个包含对象属性值的数组 - Object.entries(obj):返回一个包含对象属性名称和值的数组 - Object.assign(obj1, obj2):将多个对象合并为一个对象 ```javascript let obj = { name: 'Tom', age: 18 }; console.log(Object.keys(obj)); // ['name', 'age'] console.log(Object.values(obj)); // ['Tom', 18] console.log(Object.entries(obj)); // [['name', 'Tom'], ['age', 18]] let obj2 = { gender: 'male' }; Object.assign(obj, obj2); // {name: "Tom", age: 18, gender: "male"} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值