对于数组的操作:splice与slice

                          <!--splice: 删除并 / 或添加数组元素-->

特点:直接改变原数组,并返回被删除后的对象.

语法 / 用法:array.splice(start);

          array.splice(start,deleteCount);

          array.splice(start,deleteCount,item1,item2...);

1、start:为数组索引,means从这个索引开始(包含这个索引)删除数组内的元素。如果没有deleteCount,就代表删除索引之后所有的元素。

2、deleteCount: 为总共删除几个元素,means从start开始(包含Start)一共删除多少个元素。

3、item1,item2...: 为需要添加进数组的新元素。means先从Start开始删除,删除deleteCount(没有则删除Start及Start后所有的元素)个元素后,再新增item1.item2...等指定的新元素。

eg: let array = [ h, e, l, l, o];

   let arr = array.splice(1);      ->   array = [ h ];  arr = [ e, l, l, o ];  ( 从索引为1的值开始删除,删除到最后一个元素)

   let ar = array.splice(1,1);       ->   array = [ h, l, l, o ];   arr = [ e ];  (从索引为1的值开始删除,并且总共只删除一个元素)

   let a = array.splice(1,1,'hi');      ->   array = [ h, hi, l, l, o];   arr = [ e ];  (从索引为1的值开始删除,总共只删除一个元素,并且在索引为1的位置插入一个字符串'hi')

                        <!--slice: 把从开始不包括结束的元素拷贝至一个新的数组对象-->

特点:不改变原数组,返回操作后取得的对象.

语法 / 用法 :array.slice();

      array.slice(begin);

      array.slice(begin,end);

1、begin为从索引begin开始取数。没有end就取到数组末尾。没有begin也没有end,就从0取到数组末尾。

2、有begin,也有end的话,包含begin开始取数,不包含end

eg: let array = [ h, e, l, l, o];

   let arr = array.slice();      ->   array = [ h, e, l, l, o];  arr = [ h, e, l, l, o];

   let ar = array.slice(1,1);       ->   array = [ h, e, l, l, o];   arr = [  ];  ( 从索引1开始,但是又不包括索引1,所以取得的值为空数组 )

   let a = array.slice(1,2);      ->   array = [ h, e, l, l, o];   arr = [ e ];  ( 从索引1开始,包括索引1,取到索引为2的位置,但是不包括索引为2的值)

个人认为MDN上讲的非常详细:

splice -> https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/splice

slice  -> https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/slice