当前位置: 首页 > article >正文

对象的创建以及数组中常见的属性与方法

(一)对象创建的三种方法

1、利用对象字面量创建对象

 const obj={

            name:'小开心'

         }

2、利用new Object创建对象

 const obj1=new Object({

            name:'小开心'

         })

3、利用构造函数创建对象

构造函数:是一种特殊的函数,主要用来初始化对象,构造函数可以快速创建多个类似的对象

约定:(1)他们的命名以大写字母开头(2)他们只能用new操作符来执行

function Animals(name,age,color){

            this.name=name;

            this.age=age;

            this.color=color

         }

         const cat=new Animals('小猫',3,'黑色')

         const dog=new Animals('小狗',2,'白色')

         const pig=new Animals('猪',3,'白色')

4、new一个构造函数发生了什么

(1)创建新对象

(2)构造函数的this指向新对象

(3)执行构造函数代码,修改this,添加新属性

(4)返回新对象

(二)内置构造函数

1、Object静态方法

(1)Object.keys(对象) 获取对象中所有的键

 const obj={name:'小开心',age:21}

         console.log(Object.keys(obj))

(2)Object.values(对象) 获取对象中所有的值

 const obj={name:'小开心',age:21}

  console.log(Object.values(obj))

(3)Object.assign(拷贝给谁,被拷贝对象)

const obj={name:'小开心',age:21}

 const obj1={}

 Object.assign(obj1,obj)

 console.log(obj1)

对象的拷贝经常用于给对象添加属性

Object.assign(obj,{gender:'女'})

2、Array内置构造函数

(1)reduce返回累计处理的结果,经常用于求和

        数组.reduce(function(上一次的值,这一次的值){},初始值)

  (1.1)、reduce的执行过程

  • 如果没有起始值,则上一次的值以数组的第一个元素的值
  • 每一次循环,把 返回值给作为下一次循环的上一次的值
  • 如果有起始值,则起始值作为上一次的值

 (1.2)求和操作

 const arr=[1,4,6,8,10]

        const total=arr.reduce(function(pre,current){

            return pre+current

        },10)

        console.log(`数组的和为:${total}`)

//箭头函数 写法

const total=arr.reduce((pre,current)=>pre+current,10)

console.log(`数组的和为:${total}`)

 (2)数组中常见的方法

(2.1)find方法

find为查找,在多个对象里面只查找符合条件的对象,可以根据姓名进行查找

 const arr=[{

            name:'小米',

            price:'1999'

        },

        {

            name:'华为',

            price:'2999'

        }

    ]

    const mi=arr.find(function(item){

        return item.name==='小米'

    })

    console.log(mi)

 (2.2)form方法  伪数组转换为真数组

Array.form(伪数组)将伪数组转换为真数组后可以利用真数组中的方法


http://www.kler.cn/a/1522.html

相关文章:

  • 新版2024AndroidStudio项目目录结构拆分
  • ubuntu 20.04 安装 5.4 内核
  • C#语言的网络编程
  • 如何在 Ubuntu 22.04 上安装 Cassandra NoSQL 数据库教程
  • 对快速由表及里说拜拜/如何正确运用由表及里
  • 使用python将多个Excel表合并成一个表
  • 训练自己的GPT2-Chinese模型
  • Android 进程间通信机制(三) 系统进程与应用进程通信
  • 【华为OD机试真题2023 JAVA】单核CPU任务调度
  • MySQL8 双主(主主)架构部署实战
  • GO语言--反射
  • 初识Linux
  • 机器学习---聚类算法
  • Keil5安装和使用小记
  • string的模拟实现
  • 第一次认真周赛总结
  • 【RabbitMQ笔记10】消息队列RabbitMQ之死信队列的介绍
  • 宝塔控制面板常用Linux命令大全
  • IntelliJIDEA 常用快捷键
  • 2023年Android现代开发
  • 用Java解决华为OD机试考题,目标300+真题,清单奉上,祝你上岸
  • oracle 删除表空间(tablespace)及数据文件的方法
  • 基于Vue+Vue-cli+webpack搭建渐进式高可维护性前端实战项目
  • 【C++】智能指针
  • OpenHarmony之cJSON库使用介绍
  • 蓝桥杯C++组怒刷50道真题(填空题)