javascript基础: Array

Ext4+的文档中列出了所有javascript:Array的函数说明

1、concat( values )
    将当前this的数组和values进行拼接,返回一个新数组
   var array1 = ['a', 'b'], 
       array2 = ['c', 'd'],
       array3 = ['e', 'f'];
   
    array1.concat(array2)  == > 生成一个新的数组 ['a', 'b', 'c', 'd']
    array1.concat(array2,array3) == > 生成一个新的数组 ['a', 'b', 'c', 'd', 'e' ,'f']
    
注意: array1、array2、array3本身并没有变


2、every(callback, thisObject)
遍历数组:如果你的callback返回false,则终止遍历
   var array1 = ['a', 'b', 'c'],
       _thisObject = {name: 'zhagnshan'}
    //定义个callback
    var fun = function(item, index, arrayObj) {
         /*
          *以下的alert会显示三次
          *  第一次alert: a \n 0 \n [a,b,c] \n thisObject(还记得我吗)
          */
         alert(item+'\n' + index + '\n' + arrayObj + '\n' + this);
         return true; //如果不返回true的话,仅遍历一次哦
    }
   
   array1.every(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
  
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的

  
3、filter(callback, thisObject)
创建一个新数组,新数组中的元素为 数组中符合callback条件(即callback 返回true)元素集合
   var array1 = ['a', 'b', 'c'],
       _thisObject = {name: 'zhagnshan'}
    //定义个callback
    var fun = function(item, index, arrayObj) {
         //return item === 'a' ,仅等于a的元素符合条件 ==》 新数组:[a]
         return true; //全部满足 ==> 新数组:['a', 'b' ,'c']
    }
   
   array1.filter(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
  
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的
  

4、forEach(callback, thisObject)
遍历数组
   var array1 = ['a', 'b', 'c'],
       _thisObject = {name: 'zhanghsan'}
    //定义个callback
    var fun = function(item, index, arrayObj) {
         /*
          *显示三次:
          * 第一次: a \n zhanghsan
          * 第二次: b \n zhanghsan
          * 第三次: c \n zhanghsan
          */
         alert(item + '\n' + this.name);
    }
   
   array1.forEach(fun, _thisObject); //如果_thisObject为null,则在callback函数中的this指的是window
  
注意: IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的


5、indexOf( searchElement, [fromIndex] )
  从数组中搜索searchElement元素,返回第一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索起始位置
    var array1 = ['a', '2', 'c'];
    array1.indexOf('a') ==> 返回 0
    array1.indexOf(2) ==> 返回 -1,记住2与'2'是不相等的(===:false)(==:true)
注意:1、indexOf 比较的规则是===(值、类型必须同时相等), 而不是==
      2、IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的


6、join(separator )
用separator连接数组
    var array1 = ['a', '2', 'c'];
    array1.join(',') == > 结果:a,2,c
   
    function User(name) {
       this.name = name;
    }
    User.prototype.toString = function() {
           return this.name;
    }
    array1 = [new User('wangxifu'), new User('zhangshan')];
    array1 .join(',') == > 结果:wangxiufu,zhagnshan
  
 注意:无


7、lastIndexOf(searchElement, [fromIndex] )
从数组中搜索searchElement元素,返回最后一次出现的位置,如果搜索到怎发挥-1,formIndex参数追的搜索结束位置,一般fromIndex < 0
    var array1 = ['a', '2', 'a', 'd'];
    array1.lastIndexOf('a') == > 结果:2
    array1.lastIndexOf('a', -3) == > 结果:0
   
 注意:1、lastIndexOf < 0才可以看到效果
       2、 IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的


8、map(callback, [thisObject] )
根绝srcArray映射出一个新数组
    var array1 = ['a', '2', 'a', 'd'],
        fun = function(item, index, arrayObj) {
          return item + '_';
        },
        _thisObject = {name:'_'};
    array1.map(fun , _thisObject) == > 结果:['a_', '2_', 'a_', 'd_']
    
 注意:IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的


9、pop()
返回数组的最后一个元素,如果集合为空,则返回undefined
    var array1 = ['a', '2', 'a', 'd'];
    array1.pop() == > 结果:d (这不是队列FILO模式吗)
   注意:无


10、push(item)
将item添加到数组的末尾位置
    var array1 = ['a'];
     array1.push('b') == > 结果['a', 'b']
注意:无


11、reduce(callback, [initValue])
我也不知道该如命名这个方法,接下来看个例子吧
[code='js']
   var array1 = ['a', 'b', 'c'],
       fun = function(preValue, currentValue, index, array) {
             //preValue 代表前一个值,第一次循环时,preValue是为undefined的,
             //如何给第一次循环提供preValue参数呢?ok这个时候[initValue],就用上了
           return currentValue + '_' + preValue;
       };
      array1 .reduce(fun, '$'); ==>结果是 $_a_b_c

注意:IE8 或IE8-是不支持的every函数的,(IE8+没有测试过),但是Chrome是OK的

 






 

你可能感兴趣的:(array)