130

How to remove first and last element in an array?

For example:

var fruits = ["Banana", "Orange", "Apple", "Mango"];

Expected output array:

["Orange", "Apple"]
Mohan Ram
  • 8,345
  • 25
  • 81
  • 130
  • 10
    this looks like a 'soft ball' for creating links to w3schools, you've even used the same array elements. ;-) – Myster Jun 11 '12 at 02:54

14 Answers14

159
fruits.shift();  // Removes the first element from an array and returns only that element.
fruits.pop();    // Removes the last element from an array and returns only that element. 

See all methods for an Array.

  • It's easier with jQuery UI `myArray.effect( "transfer", { item: 'first&&last', to: bin});` – iConnor Aug 31 '13 at 08:56
  • 4
    Dear downvoters, you might want your downvotes to be helpful, so please add a comment explaining what's wrong with the answer.. –  Jun 18 '14 at 12:12
  • 3
    This will return only that removed (first or last) element's value, not remaining array – Jubin Patel Jan 13 '15 at 06:41
  • @RC. Just want to inform User about actual work of function. I am questioning on your answer. – Jubin Patel Jan 15 '15 at 06:40
  • 2
    Like User use this function as same as you write it definatly works proper as remove element, BUT if user write `return fruits.shift()` it will return ONLY that first element and then remove from array. – Jubin Patel Jan 15 '15 at 06:44
113

Creates a 1 level deep copy.

fruits.slice(1, -1)

Let go of the original array.

Thanks to @Tim for pointing out the spelling errata.

Anurag
  • 140,337
  • 36
  • 221
  • 257
26

var fruits = ["Banana", "Orange", "Apple", "Mango"];
var newFruits = fruits.slice(1, -1);
console.log(newFruits); //  ["Orange", "Apple"];

Here, -1 denotes the last element in an array and 1 denotes the second element.

adiga
  • 34,372
  • 9
  • 61
  • 83
Tripti Pant
  • 530
  • 5
  • 6
9

I use splice method.

fruits.splice(0, 1); // Removes first array element

var lastElementIndex = fruits.length-1; // Gets last element index

fruits.splice(lastElementIndex, 1); // Removes last array element

To remove last element also you can do it this way:

fruits.splice(-1, 1);

See Remove last item from array to see more comments about it.

Community
  • 1
  • 1
Chinokao
  • 164
  • 1
  • 6
5

push() adds a new element to the end of an array.
pop() removes an element from the end of an array.

unshift() adds a new element to the beginning of an array.
shift() removes an element from the beginning of an array.

To remove first element from an array arr , use arr.shift()
To remove last element from an array arr , use arr.pop()

Harun Or Rashid
  • 5,589
  • 1
  • 19
  • 21
2

You can use Array.prototype.reduce().

Code:

const fruits = ['Banana', 'Orange', 'Apple', 'Mango'],
      result = fruits.reduce((a, c, i, array) => 0 === i || array.length - 1 === i ? a : [...a, c], []);

console.log(result);
Yosvel Quintero
  • 18,669
  • 5
  • 37
  • 46
2

This can be done with lodash _.tail and _.dropRight:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
console.log(_.dropRight(_.tail(fruits)));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>
Penny Liu
  • 15,447
  • 5
  • 79
  • 98
2

For avoiding Mutation and changing the source array, a ReactJS developer cannot use pop, shift function, because both will change the source array and this kind of changes are root of very deep bugs.

The best way is using slice JavaScript built-in function. This function will create a slice of the source array and return for you a new array, also it accept negative index numbers, it means the first negative number is the latest item in array. so:

fruits.slice(a, b)
  • The first argument means start from index a and the index a - 1 isn't wanted.
  • The second argument means slice end in index b - 1 and the index b isn't wanted.

So by the above explanation if we put a = 1 it means we don't want first element and if we put b = latest it means slicing will end in index b - 1 and we don't what index b.

: What was the index of latest element in the slice function? correct -1.

✅ So the final answer is:

fruits.slice(1, -1)
AmerllicA
  • 29,059
  • 15
  • 130
  • 154
1

To remove element from array is easy just do the following

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')
Aurasphere
  • 3,841
  • 12
  • 44
  • 71
Richie
  • 570
  • 6
  • 10
0

Say you have array named list. The Splice() function can be used for both adding and removing item in that array in specific index i.e that can be in the beginning or in the end or at any index. On the contrary there are another function name shift() and pop() which is capable of removing only the first and last item in the array.

This is the Shift Function which is only capable of removing the first element of the array

var item = [ 1,1,2,3,5,8,13,21,34 ]; // say you have this number series 
item.shift(); // [ 1,2,3,5,8,13,21,34 ];

The Pop Function removes item from an array at its last index

item.pop(); // [ 1,2,3,5,8,13,21 ];

Now comes the splice function by which you can remove item at any index

item.slice(0,1); // [ 2,3,5,8,13,21 ] removes the first object
item.slice(item.length-1,1); // [ 2,3,5,8,13 ] removes the last object 

The slice function accepts two parameters (Index to start with, number of steps to go);

Labib Hussain
  • 590
  • 5
  • 9
0

I over through all the notable answers. I am pointing you out a different answer. It works for me. I hope it will help you

fruits.slice(1,fruits.length-1)
Najmul Hoq
  • 143
  • 1
  • 11
-1

You used Fruits.shift() method to first element remove . Fruits.pop() method used for last element remove one by one if you used button click. Fruits.slice( start position, delete element)You also used slice method for remove element in middle start.

  • 1
    read this and format your answer correctly https://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks – isuruAb Apr 10 '17 at 16:15
-1
var resident_array =  ["RC_FRONT", "RC_BACK", "RC_BACK"];
var remove_item = "RC_FRONT";
resident_array = $.grep(resident_array, function(value) {
            return value != remove_item;
    });
resident_array = ["RC_BACK", "RC_BACK"];
vikas pal
  • 75
  • 1
  • 9
-1

To remove the first and last element of an array is by using the built-in method of an array i.e shift() and pop() the fruits.shift() get the first element of the array as "Banana" while fruits.pop() get the last element of the array as "Mango". so the remaining element of the array will be ["Orange", "Apple"]

Nissa
  • 4,636
  • 8
  • 29
  • 37
  • 2
    the answer you gave is already existing in this question: [here](https://stackoverflow.com/a/4644159/4464653) and [here](https://stackoverflow.com/a/50600222/4464653). If you feel like they need more explaination, please leave a comment under the answer that you're not satisfied with. – Skandix Oct 24 '18 at 11:11
  • 1
    Formatting your code will help (https://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks)! Additionally, this answer seems identical to others (e.g. https://stackoverflow.com/a/43327999/608312). – Jake Lee Oct 24 '18 at 11:12
  • Noted @JakeSteam – chisom okoye Oct 24 '18 at 12:10