描述

删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组

输入描述:

[1, 2, 3, 4]

输出描述:

[2, 3, 4]

function curtail(arr) {
return arr.slice(1);
}
var result=arr.slice(0);
    result.shift();//shift函数是删除第一个元素
    return result;
var result=arr.slice(0);
 result.splice(0,1);
    return result;

知识点:

slice

学习链接: js中 slice 用法用法全解析

slice 会提取原数组中索引从  begin 到  end 的所有元素(包含begin,但不包含end)。

slice(1,4) 提取原数组中的第二个元素开始直到第四个元素的所有元素 。 

arr.slice(1)删除第一个元素

arr.slice([begin[, end]])

begin

从该索引处开始提取原数组中的元素,如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取, slice(-2) 表示提取原数组中的倒数第二个元素到最后一个元素(包含最后一个元素)。如果省略  begin ,则  slice 从索引 0 开始。

end

在该索引处结束提取原数组元素(从0开始)。 

如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取 slice(-2,-1) 表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。

如果 end 被省略,则 slice 会一直提取到原数组末尾。

如果  end 大于数组长度, slice 也会一直提取到原数组末尾。

1.直接复制整个数组

const arr2 = arr.slice()

2.获取从n开始的子数组

//不修改原数组,返回删除第一个元素的新数组
function useone (arr) {
  const usedItem = arr[0]
  return arr.slice(1)
}

3.获取从末尾n开始的子数组

//只获取末尾3个元素
const last3 = arr.slice(-3)

4.获取数组的前n个

//获取前四个
const first4 = arr.slice(0, 4)

5.从数组中间获取已知长度的子数组

function pullSegment(arr, begin, length) {
  return arr.slice(begin, begin + length);
}

splice

学习链接:splice 的用法总结

splice(index ,howmany , itemX)

splice 是数组的一个方法,使用这个方法会改变原来的数组结构,数组改变为splice截取之后剩下的数组

splice()这个方法就是可以删除数组中的项,也可以向数组中添加新的项

传递一个参数时 :

var n = arr.splice(2);//参数为2表示从索引下标为2的位置开始一直截取到数组的最后;

传递一个参数的时候表示从这个参数的位置开始一直截取到最后

var arr = [2,4,6,7,8,9]; 
    var n = arr.splice(2);//参数为2表示从索引下标为2的位置开始一直截取到数组的最后;
    console.log(n);//[6,7,8,9]//splice()返回的是截取到的数组
    console.log(arr);//[2,4]//原来的数组结构发生改变,为splice截取之后剩下的数组

传递两个参数时:

var n = arr.splice(2,3);//表示从下标位置为2开始截取3个数

传递两个参数,第一个参数表示开始的位置,第二个参数表示要截取的个数;如果第二个参数为0,则表示不截取,返回的空数组,原来的数组不变

var arr = [2,4,6,7,8,9]; 
    var n = arr.splice(2,3);//表示从下标位置为2开始截取3个数
    console.log(n);//[6, 7, 8]
    console.log(arr);//[2,4,9]

传递三个数组的时候

 var n = arr.splice(2,0,5);//表示在下标为2的位置,截取0个数组,在下标为2的位置添加一个新项

var arr = [2,4,6,7,8,9]; 
    var n = arr.splice(2,0,5);
//表示在下标为2的位置,截取0个数组,在下标为2的位置添加一个新项
    console.log(n);//[]
    console.log(arr);//[2, 4, 5, 6, 7, 8, 9]

    //当第二个参数不为0的时候

    var arr = [2,4,6,7,8,9]; 
    var n = arr.splice(2,3,5);
//表示从下标为2的位置开始,删除3个项,在下标为2的位置添加一个数字为5的新项
    console.log(n);//[6, 7, 8]
    console.log(arr);//[2, 4, 5, 9]