高程笔记1-对象

对象

Object
创建对象的方式:
  • new 操作符: let obj = new Object();
  • 对象字面量:let obj={};//不会调用Object构造函数
使用对象属性
  • .key的方式:obj.a;
  • [key]方式:obj[a]; //当key是变量或关键字,保留字,字符串时使用比较方便
Array
数组创建
  • new操作符
  • 数组字面量
  • Array.from(); 将一个可迭代对象或含有length和可索引结构转换为数组
Array.from(intoraterObj,callback,this)//
callback:类似map()方法遍历intoraterObj;
this:可修改callback内部的this;
const a1=[1,2,3];
const a2=a1.from(a1,(x)=>x*2);//箭头函数不能绑定this
数组索引
  • length:可以通过length动态增删数组长度
数组检验
  • instanceof操作符:arr instanceof Array //如果有多个全局执行上下文,则会导致Array不同,检验出问题。
  • Array.isArray() //不需要在乎哪个上下文
数组的复制和填充
  • 批量复制 copyWithin(postion,start,end)//复制自身的一部分数据
    let ints = [0,1,2,3,4]
    ints.copyWithin(2,3,4)//ints-> [0,1,3,3,4]
  • 填充 fill(value,start,end)//vlaue:需要填充的值,start/end:开始和结束位置
    let ints = [0,1,2,3,4]
    ints.fill(6,2,5)//ints -> [0,1,6,6,6],不会超出数组长度
转换
  • 转为字符串 Array.toStirng()//会生成用’,'分割的字符串,且会对每一个元素调用toString()
  • Array.toLocalString()//同上,会对每一个元素调用toLocalString()
栈方法(在数据尾部操作)
  • 进栈 push()//尾部添加数据
  • 出栈 pop()//尾部删除数据
队列方法(头尾操作,先进先出)
  • 进队列 push()
  • 出队列 shift()//头部删除
  • 头部添加 unshift()
排序方法
  • 倒序(都是修改原数组)
    • reverse(array)//直接颠倒数组的顺序
    • sort(callback(value1,value2))
      //简单得理解callback得返回值如果为正则调val1,val2位置,为负|0则保持val1在val2前面。
操作方法
  • concat()//合并数组,保持原数组不变
let colors = ["red", "green", "blue"]; 
let colors2 = colors.concat("yellow", ["black", "brown"]); 
console.log(colors); // ["red", "green","blue"] 
console.log(colors2); // ["red", "green", "blue", "yellow", "black", "brown"]

Symbol.isConcatSpreadable]:true//defalut;强制打平数组
                          :false//不打平数组
  • splice(postion,length,…array)//postion:操作的位置;length:操作的长度;替换的值
    • 删除 splice(postion,length)//length删除的个数,array传空
    • 插入 splice(postion,0,…array)
    • 替换 splice(postion,length,…array)
检索方法
  • 严格相等检索(每一个元素都是"==="判断)

    • indexOf(value)//从开头检索,返回下标
    • lastIndexOf(value)//从结尾检索,返回下标
    • includes(value)//从头检索,返回Boolean
  • 断言函数

    • find(callback(element,index,array),this)
      //可传入回调进行判断,this改变函数内的this指向(箭头函数不可用);返回元素(只要满足立即结束返回)
    let a=[1,2,3,4];
    a.find((ele,i,arr)=>ele>2)//3
    
    • findIndex(callback(element,index,array),this)//同find一样,区别是返回下标
迭代方法

都不会改变原有数组

  • every():对数组每一项都运行传入的函数,如果对每一项函数都返回 true,则这个方法返回 true。
  • some():对数组每一项都运行传入的函数,如果有一项函数返回 true,则这个方法返回 true。
  • filter():对数组每一项都运行传入的函数,函数返回 true 的项会组成数组之后返回。
  • map():对数组每一项都运行传入的函数,返回由每次函数调用的结果构成的数组。
  • some():对数组每一项都运行传入的函数,如果有一项函数返回 true,则这个方法返回 true。
归并方法

会迭代数组的所有项,并在此基础上构建一个最终返回值。
callback(上一个归并值,当前项,当前项的索引和数组本身)

  • reduce(callback,initalValue)//callback(prev,cur,index,array)
  • reduceRight同理,只是从右开始遍历。
Map
  • 与Object区别:
    1. es6中一种新的可迭代,键值对集合
    2. Map在大量数据时内存占比小,插入删除性能好
    3. 可以使用任何数据类型作为键
  • api:
    • 增/改:set(key,value)//返回Map的实例,可链式调用
    • 删:delete(key)//返回Boolean
    • 查:has(value)//返回Boolean
    • 删所有:clear()//返回Boolean
weekMap(不常用)

与Map的区别,如果内容一旦没用被引用就会被回收销毁,从而无法迭代,没有size属性,没用clear()方法

  • api:
    • set(key,value)
    • delete(key)
    • get(key)
    • has(key)
Set

类似数组,只能不可重复得值

  • api:
    • add(value)//新增元素,返回set对象,可链式调用,一次只能存入一个元素
    • has(value)//查询元素;delete(value)//删除元素 //均返回Boolean
    • clear()//清除所有元素,返回undefind
weekSet(不常用)

和weekMap同理,Set得兄弟版本

  • api:略
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值