由于前端的业务比较复杂,在数据的增删过程中可能需要以数组的形式操作,但是数组有时候可能会不满足用户的需求,比如说我在数组中插入某一个值,不影响原来的元素,或者删除一个元素。删除的时候从开头删呢还是结尾删,都需要考虑。所有js提供了几种常用的方法进行对数组操作,详解如下代码:

1.push()

①说明 

  • push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
  • 如果出现push()方法,那后边就必须跟一个参数,最少是一个,其他的可选
  • push() 方法可把它的参数顺序添加到 arrayObject 的尾部,直接修改原来数组的长度,而不是创建一个新的数组 

②语法

arrayObject.push(newelement1,newelement2,....,newelementX)

③用法 

var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"    
    document.write(arr + "<br />")
    document.write(arr.push("James") + "<br />")
    document.write(arr.push("helloword")+"<br/>")
    document.write(arr)

④执行效果 

java 前端传递数组参数 前端传入数组_项目实战

⑤项目实战

java 前端传递数组参数 前端传入数组_java 前端传递数组参数_02

2.unshift()

①说明

  • unshift() 方法可向数组的开头添加一个或多个元素,并返回新的长度。
  • 如果出现push方法,那后边就必须跟一个参数,最少是一个,其他的可选. 
  • unshift() 方法可把它的参数顺序添加到 arrayObject 的头部,直接修改原来数组的长度,而不是创建一个新的数组

②语法

arrayObject.unshift(newelement1,newelement2,....,newelementX)

 ③用法

var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"

    document.write(arr + "<br />")
    document.write(arr.unshift("James") + "<br />")
    document.write(arr.unshift("helloword")+"<br/>")
    document.write(arr)

④执行效果

可以看出,插入的元素已经到了数组的第一个位置

java 前端传递数组参数 前端传入数组_项目实战_03

3.splice()

①说明

  • 从数组的某个位置开始插入,插入之后可以删除某个元素,也可以不删除,根据数组的下标操作。
  • index开始插入和或删除的数组元素的下标,必须是数字,或是下标变量。
  • 从这个数组的下标为2的位置开始插入两个元素,插入之后删除一个元素,删除的元素的下标是刚插入的这个元素的下标的下一个位置,返回的数组是操作后的新数组

②语法

array.splice(index,howmany,item1,.....,itemX)

第一种,删除并插入

<body>
    <p id="demo">点击按钮向数组添加元素。</p>
    <button onclick="myFunction()">点击删除元素并插入</button>
      <script>
         function myFunction() {
         var Sports = ["basketball", "baseball", "volleyball", "handball","golfball"];
         fruits.splice(2, 1, "volleyball", "bowlingball");
         var x = document.getElementById("demo"); 
         x.innerHTML = fruits;
      }
     </script>
 </body>

第二种,只删除

<body>
    <p id="demo">点击按钮删除数组中的元素</p>
    <button onclick="myFunction()">点击只删除元素</button>
      <script>
         function myFunction() {
         var Sports = ["basketball", "baseball", "volleyball", "handball","golfball"];
         fruits.splice(2, 1, "volleyball", "bowlingball");
         var x = document.getElementById("demo"); 
         x.innerHTML = fruits;
      }
     </script>
 </body>

③项目实战

// 接收子组件传递过来的内容
       getMoreInfo(obj) {
         console.log("子组件" + obj);
        // 这里做过滤,判断之前传过来的值是否存在,如果存在,就删除,重新push
        //如果不存在就直接push到数组中。
         for (let i = 0; i < this.selectedObj.length; i++) {
          this.smallQuestionScore = this.selectedObj[i].questionValue;
          if (this.selectedObj[i].questionType == obj.questionType) {
             this.selectedObj.splice(i, 1);
          }
         }
         //将子组件传过来的对象推入selectobj数组
        this.selectedObj.push(obj);
       },

4.slice()

①说明

  • 将原来数组中的某个或某几个特定的值截取出来
  • 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
  • 正数形式

1. start    可选。规定从何处开始选取。

2.end 可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。

  • 负数形式:

1.如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。

2.如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

<p id="demo">点击按钮截取数组下标 1 到 2 的元素。</p>
    <button onclick="myFunction()">点我</button>
    <script>
     function myFunction() {
      var Sports = ["basketball", "baseball", "volleyball", "handball","golfball"];
        //截取出来的数组
        var intercept = Sports.slice(1, 3);
        var x = document.getElementById("demo");
        x.innerHTML = intercept;
      }
   </script>

执行效果 

java 前端传递数组参数 前端传入数组_项目实战_04

5.shift()

①说明

  • shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
  • 会改变原来的数组,返回的是一个新的数组
  • 和它对应的方法是从数组中移除最后一个元素,用pop方法

注意:和对应的还有一个pop()方法,正好和shift的相反,pop用于把数组的最后一个元素从其中删除

<body>
    <p id="demo">单击按钮删除数组的第一个元素。</p>
    <p id="demo2"></p>
    <button onclick="myFunction()">点我</button>
    <script>
      var Sports = ["basketball", "baseball", "volleyball", "handball","golfball"];
      function myFunction() {
        var delell = Sports.shift();
        // var delell=Sports.pop();
        var x = document.getElementById("demo");
        x.innerHTML = "删除后数组为:" + Sports;
        document.getElementById("demo2").innerHTML = "删除的元素是:" + delell;
      }
    </script>
  </body>

 执行效果

 

java 前端传递数组参数 前端传入数组_java 前端传递数组参数_05

6.join()方法

①说明

  • 用户把一个数组中的元素用不用的分隔符进行分割,把数组中的元素转换成字符串格式。

②代码

<body>
    <p id="demo">单击按钮删除数组的第一个元素。</p>
    <p id="demo2"></p>
    <button onclick="myFunction()">点我</button>
    <script>
      var Sports = [
        "basketball",
        "baseball",
        "volleyball",
        "handball",
        "golfball",
      ];
      function myFunction() {
        var energy = Sports.join();
        // var energy = Sports.join("|");
        // var energy = Sports.join("and");
        // var delell=fruits.pop();
        var x = document.getElementById("demo");
        x.innerHTML = "删除后数组为:" + Sports;
        document.getElementById("demo2").innerHTML = "删除的元素是:" + delell;
      }
    </script>
  </body>

 执行效果,这里分割可以用多种方法

 

java 前端传递数组参数 前端传入数组_项目实战_06

③项目实战

java 前端传递数组参数 前端传入数组_数组_07

总结:这些方法在这次的项目中基本都用到了,因此记录下来。