js数组

  • 数组的下标是基于0的32位整数
  • 数组字面量表示法中的元素可以是表达式
  • 数组[ ]下标可以是表达式
  • 数组[ ]下标可以不是非负整数,相当于为函数对象添加属性,只有非负整数属性名才能引起length属性的修改
  • length属性要比所有元素的下标大
  • delete 不影响数组的长度
  • 数组遍历需要优化,数组长度应该只查询一次
for(var i=0,len=arr.length; i<len; i++)
  • concat 不会递归扁平话参数中的子数组
var a = [1,2 3]
a.concat (4,[5,[6,7]])
// 1,2,3,4,5,[6,7]
  • toString会将数组元素无包裹地拼接起来
[1,2,"a",[3,4]].toString()
//1,2,a,3,4
  • 数组中包含undefined,在sort时会排到最后
  • splice会直接修改原数组,返回删除的数组
  • reverse 会直接修改原数组
  • push pop shift unshift 都会修改原数组
  • pop shift 会返回数组元素
  • push unshift 返回数组的长度
  • unshift splice 会将参数元素一次性地添加进数组,在数组中的顺序即参数本身的顺序
  • es5中新增数组方法不会修改原数组
arr.es5数组方法(function(数组元素,索引,数组){},this值的指向)
  • map会返回一个新数组forEach不会返回值
  • some遇到返回true的元素就停止遍历every 遇到返回false 的元素就停止遍历
  • filter会跳过稀疏数组中缺少的元素,用filter压缩稀疏数组
arr.filter(function(x){return true })
  • reduce reduceRight
arr.reduce(function(操作累计的值,数组元素,索引,数组本身){},初始值)
  • reduce 中使用的是化简函数,将两个值化简为一个值,并返回化简后的值
  • 初始值没有指定时,会将数组中的第一个元素做为初始值
  • 在空数组上调用reduce且没有指定初始值时,会报错
  • 在空数组上调用reduce 且有一个初始值,或者在只有一个元素的数组上调用reduce且没有初始值时,会简单地返回这个值
sum = arr.reduce(function(x,y){return x+y},0)
product = arr.reduce(function(x,y){return x*y },1)
max = arr.reduce(function(x,y){return x>y?x:y })
  • indexOf() 第二个参数指定查询的起始位置,为负值时,是相对于数组末尾
  • 数组类型
  1. Array.isArray()
  2. arr instanceof Array 但是一个浏览器对象可能会有多个frame,每个frame中都有自己的全局变量和对应的构造函数,一个frame中的对象不可能是另一个frame的构造函数的实例,该判断方法会失效
  3. typeof arr === “object” && Object.prototype.toString.call(arr) ==="[object Array ]"
  • 类数组对象
  • 数组的方法可以用在类数组对象上,但是concat中的拼接结果不包括类数组对象
  • 返回类数组对象的数组副本
Array.prototype.slice.call(arrlike,0)
  • 字符串类似于只读数组,[ ]可以访问字符串中的字符
  • 在字符串上调用修改数组的数组方法会静默地失败
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值