zoukankan      html  css  js  c++  java
  • js数组操作

    1.遍历数组:
    jquery
     
    $.each(arr,function(index,value,arr){
             console.log(index+":"+value);
    })
    js:
     arr.forEach(function(value,index,arr){
                  console.log(index+":"+value+":"+arr);
    })
    注意jq与js写法的不同,value与index的先后问题;
    Foreach方法还可以传多个参数进去:
    Array.forEach(function,thisobject);thisobject可以改变this值的指向问题
     
    2,遍历并且改变数组:
    Array.map(callback(value,index,arr){
       return ;
    })
     var newarr=[1,2,3,0].map(function(value,index,arr){
               return value==0?new Number():value;  
    })
    map方法虽然能改变数组,也可以筛选数组,但是不能过滤数组
     
    3,过滤数组:
    Array.grep(callback(value,index,arr){
    })
    var greparr=$.grep([1,2,3,0],function(value){
                      return value!=0;
    })//greparr=1 2 3;
    Array.filter(callback(value,index,arr){
    })
     var filterarr=[1,2,3,0].filter(function(value){
                      return value!=0;
    })
    alert(filterarr);//filterarr=1 2 3;
    筛选数组的方法支持链式调用
     
    4,按一定条件筛选数组,并且返回一个bool值
    筛选合乎某些条件的数组:类似于选择器的has()
    some方法():
    1>:只有一个参数callback:
    alert([1,2,3,40].some(function(value){
                        return value>10;
    })) //返回就停止执行
    2>:两个参数callback,thisobject:
    some(function,thisobject)
    要求所有的成员都满足的数组函数:
     alert([1,2,3,40].every(function(value){
                        return value>10;
     }))
     
    5,寻找数组中的的某个元素
    indexof():
    Array.indexOf(searchelement,startindex),返回searchelement的索引值,未找到返回-1,如果startindex的值不符合要求 ,默认从首位开始查找;
     
     [1,2,3,40].indexOf(40,2) //3 40的index值
    lastindexof():
    Array.lastindexOf(searchelement,startindex),与indexOf不同的是lastindexOf是从末尾开始查找,stratindex默认为Array.length-1而不是0;
    alert([20, 51, 72, 33, 54].lastIndexOf(5,3));  //1
     
    6,迭代,递归:围绕数组一周
    reduce(callback,initialValue):
    callback(precious,current,index,array),initialValue:是一个可选参数,指定数组的初始值,如果有的话就代表着callback的第一个参数值precious为initialValue,迭代次数多了一次,例如以下例子:
    console.log([1,2,3,4].reduce(function(pre,next,index,arr){
                          return pre+"+"+next;
    },3))
    如果没有就指的是从数组的第一个开始,此时的precious指的是数组的第一个元素,current指的是第二个元素,
    console.log([1,2,3,4].reduce(function(pre,next,index,arr){
                          return pre+"+"+next;
     
    }))
    使用迭代实现二维数组的扁平化:
    var matrix = [
        [1, 2],
        [3, 4],
        [5, 6]
    ];
    console.log(matrix.reduce(function(previous, current) {
        return previous.concat(current); //concat函数是连接一个字符串或者是数组用的
    }));
    object.concat(element1,element2.....element):按照顺序连接一个字符串或者是数组
    var str="Ss";
    console.log(str.concat("sss","www"));
     
    <div class="div1"></div>
    <div class="div2"></div>
    <div class="div3"></div>
    <div class="div4"></div>
     
    var eleDivs = document.getElementsByTagName("div");
                Array.prototype.forEach.call(eleDivs, function(div) {
                  console.log("该div类名是:" + (div.className || "空"));
    });
  • 相关阅读:
    jmeter单一接口测试
    mac os下载安装jmeter
    十、集成使用redis
    Java之Poi导出Excel文档
    134. Gas Station (Array; DP)
    53. Maximum Subarray (Array; DP)
    36. Valid Sudoku (Array; HashTable)
    37. Sudoku Solver (Array;Back-Track)
    52. N-Queens II (Array; Back-Track)
    51. N-Queens (Array; Back-Track, Bit)
  • 原文地址:https://www.cnblogs.com/laiso/p/7872936.html
Copyright © 2011-2022 走看看