继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

js数组常用方法(1)

魇魅1
关注TA
已关注
手记 3
粉丝 2
获赞 9
数组检测
  • ES3 使用instanceof

if (value instanceof Array){
//对数组执行某些处理
}


instanceof作为一个语法糖,判断主要依据当前的全局执行环境,如果存在iframe标签下,当前页面存在两个不同的全局执行环境,那么在跨全局执行环境下进行判断则会失效。可以使用Object.prototype.toString.call(value) == "[object Array]";判断;

  • ES5 使用 Array.isArray()

if (Array.isArray(value)){
//对数组执行某些处理
}


Array.isArray(),对浏览器版本有所要求,综合考虑还是使用Object.prototype.toString.call(),有保障一些。

数组装换成字符串
  • toString(),以逗号分隔。
  • valueOf(),以逗号分隔。
  • join('|'),以传入指定分隔符进行分隔,若什么也不传,或者undefined,则默认以逗号分隔。IE7及更早版本以字符串"undefined"分隔。
栈方法
  • Array.push("A","B"),向数组末位最佳两个元素,且返回数组长度。
  • Array.pop(),删除数组最后一项,切返回被删除的一项。
  • Array.unshift('A'),向Array的前端新增A元素,且返回数组的长度。
  • Array.shift(),删除Array的第一项,且返回数组长度。
    重排序方法
  • reverse(),反转数组的顺序。
  • sort(),升序排列数组,但是在执行的时候会先把比较的执行一次toString(),然后比较得到的字符串,得到的结果往往不是我们想要的

    arr.sort(function(a,b){
    return a-b;//升序
    })


操作方法
  • concat()方法可以基于当前数组中所有创建一个新数组,会给当前数组创建一个副本,返回合并后的数组,当前数组并不会发生变化。
  • slice(),接收一个或两个参数,1)传入一个参数时,返回从当前下标到数组最后一个元素,2)两个参数,返回起始和结束位置之间的项,但不包括结束位置,从0下标开始。本方法不会影响原始数组

    var colors = ['red','green','blue','yellow']
    var colors1 = colors.slice(1); //green,blue,yellow
    var colors2 = colors.slice(1,3); //green,blue

  • splice()最强大的数组方法,删除,插入,替换。

splice(0,2),删除数组中下标为0和1的值。
splice(2,0,"red","green"),从当前的数组位置2开始,删除0个,并新增"red","green"
splice(2,1,"red","green"),替换,会删除当前数组位置2的项,然后从位置2开始插入字符串"red","green";

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP