一、改变数组自身
JavaScript中,可以直接使用数组的_shift()方法来删除第一个元素,该方法会改变原数组自身,返回被删除的元素。
var arr = [1, 2, 3, 4, 5]; arr.shift(); console.log(arr); // [2, 3, 4, 5]
该方法的时间复杂度为O(n),因为每个元素都需要向前移动一位。
二、使用slice方法
通过使用数组的slice()方法可以返回一个新的数组,并且可以通过指定开始位置来删除第一个元素。
var arr = [1, 2, 3, 4, 5]; var newArr = arr.slice(1); console.log(newArr); // [2, 3, 4, 5]
该方法的时间复杂度为O(n),因为需要创建新数组并且要把原数组中剩余的元素一个一个复制到新数组中。
三、使用filter方法
通过使用数组的filter()方法,可以返回一个新数组,并且可以通过回调函数来删除第一个元素。
var arr = [1, 2, 3, 4, 5]; var newArr = arr.filter(function(item, index){ return index !== 0; }); console.log(newArr); // [2, 3, 4, 5]
该方法的时间复杂度为O(n),因为需要遍历整个数组并调用回调函数。
四、使用splice方法
splice()方法用于向或从数组中添加或删除元素。通过使用该方法,可以删除第一个元素,并且该方法会改变原数组自身。
var arr = [1, 2, 3, 4, 5]; arr.splice(0, 1); console.log(arr); // [2, 3, 4, 5]
该方法的时间复杂度为O(n),因为需要把被删除的元素之后的元素向前移动一位。
五、使用ES6中的解构赋值
使用ES6中的解构赋值可以快速的删除一个数组的第一个元素,并且不会影响原数组。
var arr = [1, 2, 3, 4, 5]; var [, ...newArr] = arr; console.log(newArr); // [2, 3, 4, 5]
该方法的时间复杂度为O(n),因为需要创建新数组并把原数组中剩余的元素一个一个复制到新数组中。