一、数组的增加

1-1 push()

  • 从后面增加值,可以一次添加多个

    1. var arr=[1,2,3]
    2. arr.push(4,5,6)
    3. console.log(arr) // [1, 2, 3, 4, 5, 6]
  • 将数组展开使用push添加

  1. var arr = [1,2,3];
  2. var obj = [4,5,6]
  3. /* 展开 */
  4. console.log(...arr)
  5. arr.push(...obj)
  6. console.log(arr)

1-2 unshift()

  • 从数组前面增加

    1. var arr=[4,5,6];
    2. arr.unshift(1,2,3) // [1, 2, 3, 4, 5, 6]

    1-3 concat()

  • 拼接两个数组,但是不能改变原数组的结构

    1. var arr=[1,2,3];
    2. var obj=[4,5,6];
    3. /* arr.push(obj) 不能增加*/
    4. var newArray=arr.concat(obj)
    5. console.log(newArray) //[1, 2, 3, 4, 5, 6]

    1-4 splice()

  • 定点增加 splice(index, deleteNumber删除的数量, parmas) 从index前面增加

    1. var skills=['html','css','javascript','jquery']
    2. skills.splice(3,0,'vue','react')
    3. console.log(skills) //'html','css','javascript','vue','react','jquery'

    二、数组的删除

    2-1 pop()

  • 从尾部删除

    1. var arr = [1,2,3];
    2. alert(arr.pop()); //3
    3. alert(arr) //1,2

    2-2 shift()

  • 从头部删除

    1. var arr = [1,2,3];
    2. alert(arr.shift()); //1
    3. alert(arr) //2,3

    2-3 splice(index,howmany)

  • 传参:index 下标开始 ,howmany 删除多少个

    1. var app = [1,2,3,4,5,6]
    2. app.splice(2,3); //从3开始 删除3个
    3. console.log(app)

    三、数组的修改

    3-1 splice(index,howmany,params)

  • 从index开始,修改多少个值

    1. var arr=['html','css','vue'];
    2. arr.splice(1,2,'ps','react') ////"html", "ps", "react"

    3-2 join(separatar)

  • 传参:分隔符

  • 数组拼接为字符串

    1. var arr=[1,2,3,4];
    2. var str=arr.join("");
    3. console.log(str) //输出:123
    4. console.log(arr.join(",")) //输出:1,2,3
    5. console.log(arr.join("/")) //输出:1/2/3

    3-3 split()

    3-3 sort()

  • 排序

    1. //升序
    2. arr.sort((a,b)=>{
    3. return a-b;
    4. })
    5. //降序
    6. arr.sort((a,b)=>{
    7. return b-a;
    8. })

    3-4 reduce()

  • 求和

    1. var arr=[1,2,3,4];
    2. var sum=arr.reduce((a,b)=>{
    3. return a+b;
    4. })
    5. console.log(sum)

    3-5 reverse()

  • 颠倒数组元素排序

    1. var arr=[11,23,13]
    2. arr.reverse();
    3. console.log(arr)

    四、数组查询

    4-1 indexOf(value)

  • 查询对应值得下标

    1. var arr=[1,2,3,4];
    2. console.log(arr.indexOf(1)); //0
    3. //如果没有对应的值,则返回-1

    4-2 slice(startIndex,end)

  • startIndex:从第几个下标开始,必须有 end:到哪个元素结束,可选

  • 注释:可使用负值从数组的尾部选取元素。

    1. //arrayObject.slice(start,end)
    2. //1个参数
    3. var arr=[1,2,3,4];
    4. var b=arr.slice(1); //下标值开始
    5. console.log(b); //2,3,4
    6. //2个参数
    7. var c = arr.slice(1,3);
    8. console.log(c); //2,3
  • 复制一个数组

    1. var arr = [1,2,3];
    2. var b = arr.slice(0);
    3. console.log(b);

    4-3 includes()

  • 判断数组是否包含某个值

    1. let site = ['runoob', 'google', 'taobao'];
    2. site.includes('runoob');
    3. // true
    4. site.includes('baidu');
    5. // false

    4-4 Math.max(…arr) Math.min(…arr)

  • 获取最大值,最小值

    1. var arr=[1,2,3,4];
    2. Array.from(arr,item=>{
    3. console.log(item)
    4. })
    5. /* var max=Math.max(1,2,3); 直接获取值*/
    6. var max=Math.max(...arr) //获取数组,展开
    7. var min=Math.min(...arr)
    8. console.log(max) //获取最大值
    9. console.log(min) //获取最小值

    4-5 filter()

  • 过滤器:返回符合条件的值

    var arr=[
              {id:01,content:"react",checked:false},
              {id:01,content:"react",checked:true},
              {id:01,content:"react",checked:false}
                 ] 
          const ite= arr.filter(item => item.checked==false);
          /* 或者 
          const ite= arr.filter(item => !item.checked); */   
          console.log(ite);       //返回的是有chenked:false的对象
    
    var ar=[1,2,3,4,5];
         var newArr=ar.filter(item=>{
             return item>3;
         })
         console.log(newArr)  //大于3的值
    

    4-6 some()

  • 如果有满足条件的值,则返回true

    var ages = [3, 10, 18, 20];
    function checkAdult(age) {
      return age >= 18;
    }
    function myFunction() {
     ages.some(checkAdult);
    }
    //true
    

    4-7 every()

  • 数组中所有的值满足条件,才返回true

    var ages = [32, 33, 16, 40];
    function checkAdult(age) {
      return age >= 18;
    }
    function myFunction() {
      ages.every(checkAdult);
    }
    //false
    

    4-8 find()

  • 返回满足条件的第一个值

    var ages = [3, 10, 18, 20];
    function checkAdult(age) {
      return age >= 18;
    }
    function myFunction() {
      document.getElementById("demo").innerHTML = ages.find(checkAdult);
    }
    //18
    

    4-9 findIndex()

  • 返回符合条件的第一个值的下标

    var ages = [3, 10, 18, 20];
    function checkAdult(age) {
      return age >= 18;
    }
    function myFunction() {
      document.getElementById("demo").innerHTML = ages.findIndex(checkAdult);
    }
    //2
    

    4-10 判断是否是数组

  • instanceof()

    var a = ['reg','blue'];
    alert( a instanceof Array );  // true
    
  • constructor()

    var a = ['reg','blue'];
    alert( a.constructor=== Array );  // true
    

    五、数组的遍历

    5-1 for

    for(var i=1; i<5; i++) {
    console.log(i); //1, 2, 3, 4
    }
    

    5-2 for in

  • 遍历下标,也可以遍历Object的key值

         // 遍历数组下标
       for(var i in arr) {
         console.log(i);
         }
         // 遍历对象 key 值
        var obj = {
       name: 'jack',
       age: '18'
        }
       for (var i in obj) {
       console.log(i) // name, age
        }
    

    5-3 for of

  • 遍历值,但不能遍历 Object 的 值

      var arr= ['html','css','javascript','jquery']
       for(var value of arr){
             console.log(value)
         }
    

    5-4 forEach()

  • 遍历每一项以及下标

       var arr= ['html','css','javascript','jquery']
       arr.forEach((item,index)=>{
             console.log(item)
             console.log(index)
         })
    

    5-5 map()

  • 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

      var arr = ['html','css','js','vue']
      var newArray = arr.map((item,index)=>{
              return item+"1"
          })
          console.log(newArray)
    
                var items = $("img")
        console.log(items)
        var arr = [1,2,3]
        var newArr = arr.map(item=>item*4);
        console.log(newArr)
        var arr = [...items];
        var urls = arr.map(i=>{
            return $(i).attr("src");
        })
        console.log(urls)
    </script>

5-6 from()

<script>
        var arr = [12,3,23,4,5];
        Array.from(arr,item=>{
            console.log(item)
        })
    </script>

5-7 some every

二、数组方法(增删改查和遍历) - 图1
some:任一个满足 即可返回ture
every:全部都满足 才返回ture

5-8 find(),findIndex()

  • 同上