描述
删除数组 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]