js: Array 方法属性

Array:

1. 创建数组: 
  直接量, 
  var aArr = [ 1, 2, 3 ];
  // 特殊情况:最后一项结束不应该有逗号
  var aArr = [ 1, 2, 3, ]; // 由于不同浏览器及版本会生成 3 或 4 项

  构造函数, new 关键字可 省略
  var aArr = new Array(2); // 参数为 一个数值 ,创建对应长度的数组
  var aArr = new Array(1,2,3); // 参数为 多个数值/不是数值,将参数作为项

  2. length: 可修改,通过修改 length 增加或减少数组项数,不影响各项顺序
  增加修改的项为 undefined

  3. 检查类型
  aArr instanceof Array ; // 在唯一全局环境下
  Array.isArray( aArr );  // ES5 方法

  4. 转换
  toString()        // 将每项以逗号拼接的字符串,项为对象会调用其toString
  valueOf()         // 数组本身 每项以逗号分隔
  toLocaleString()  // 将每项以逗号拼接的字符串,项为对象会调用其toLocaleString

  5. 栈 LIFO,
  pop()                // 出栈,数组本身减少  ( chrome 返回值为原长度 )
  push( item, ... )    // 入栈,数组本身增加  ( chrome 返回值为新长度 )

  6. 队列 FIFO
  shift()                // 出队,数组本身减少  ( chrome 返回值为原长度 )
  unshift( item, ... )   // 入队,数组本身增加  ( chrome 返回值为新长度 )

  7. 重排
  reverse()     // 反转
  sort( func )  // 自定义排序规则, func 返回 1 (大于0/true) 交换位置,返回 -1 或 0 (小于等于 0/false)不交换位置

  8. 内容操作
  concat()   依据当前数组,添加新元素创建新数组
    aArr.concat();      // 复制,返回副本
      var bArr = aArr.concat();
      bArr == aArr;     // false
    aArr.concat( item 或 数组 );  // 获取每项,添加为新项(只会解析最外层数组),返回新数组
      var cArr = [ 1, 2 ].concat( ["66", [ "aa", "bb" ] ] );
      cArr: [ 1, 2, "66", [ "aa", "bb" ] ];  // 不是 [ 1, 2, "66", "aa", "bb" ]

  slice() 依据当前数组元素,创建子数组
    // 结束位置 默认为数组末尾;位置为负从末尾倒向获取
    // 结束位置 在 起点位置 前方,返回 [] 空数组
    slice( 起点位置, 结束位置 );   

  splice() 对当前数组进行删除,并替换,最后返回被删除项组建的新数组
    splice( 起点位置, 删除项数目, 插入的项... );   

  9. 位置操作  ES5 方法
  indexOf( 目标项, 查找起点 )       // 向末尾查找,没有目标时返回 -1 
  lastIndexOf( 目标项, 查找起点 )   // 向起点查找,没有目标时返回 -1 
    [ 1, 2, 3 ].indexOf( "2" );    // -1  查找时使用  ====  比较

  10. 迭代 ES5 方法
  every( func(item, index, array) )     对每一项进行检验, 全为true时,返回true
  some( func(item, index, array) )      对每一项进行检验, 有任一项为true时,返回true
  filter( func(item, index, array) )    对每一项进行筛选, 当为true时,项被添加到要返回的新数组中
  forEach( func(item, index, array) )   对每一项进行操作, 仅进行方法执行
  map( func(item, index, array) )       对每一项进行操作, 将每项操作结果添加到要返回的新数组中

  11. 归并  ES5 方法
  // 对每一项与初始项进行操作, 返回操作结果, 操作结果作为初始项与下一项进行操作,结束时返回操作结果
  // 不足两项时 直接返回 该项
  reduce( func(prev, cur, index, array) )       // 初始项为 第一项,从第二项开始
  reduceRight( func(prev, cur, index, array) )  // 初始项为 倒数第一项,从倒数第二项开始
  [1].reduce(function(prev, cur, index, array){ return 0 - prev + cur; });    // 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值