удалить первый и последний элемент в массиве

103

Как удалить первый и последний элемент в массиве?

Например:

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

Ожидаемый выходной массив:

["Orange", "Apple"]
Мохан Рам
источник
9
это похоже на «мягкий мяч» для создания ссылок на w3schools, вы даже использовали те же элементы массива. ;-)
Myster

Ответы:

143
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. 

См. Все методы для массива.


источник
С jQuery UI прощеmyArray.effect( "transfer", { item: 'first&&last', to: bin});
iConnor
3
Уважаемые участники, проголосовавшие против, возможно, вы захотите, чтобы ваши голоса против были полезны, поэтому, пожалуйста, добавьте комментарий, объясняющий, что не так с ответом ..
3
Это вернет только значение этого удаленного (первого или последнего) элемента, а не оставшийся массив
Джубин Патель,
@RC. Просто хочу проинформировать пользователя о реальной работе функции. Я сомневаюсь в вашем ответе.
Jubin Patel
2
Подобно тому, как пользователь использует эту функцию так же, как вы пишете, она определенно работает должным образом как элемент удаления, НО, если пользователь напишет, return fruits.shift()он вернет ТОЛЬКО этот первый элемент, а затем удалит из массива.
Jubin Patel
80

Создает копию глубиной 1 уровня.

fruits.slice(1, -1)

Отпустите исходный массив.

Спасибо @Tim за указание на орфографические ошибки.

Анураг
источник
1
Я думаю, вы slice()скорее имеете в виду , чем splice().
Tim Down
71
Нарезать фрукт лучше, чем переложить или переложить.
pettys
2
с возрастающей популярностью redux, функционального javscript и неизменяемых вещей этот ответ намного лучше
nkint
17

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

Здесь -1 обозначает последний элемент в массиве, а 1 обозначает второй элемент.

Трипти Брюки
источник
Или просто fruits = fruits.slice(1,-1);если вам не нужно создавать новую переменную.
Hastig Zusammenstellen
9

Я использую метод сварки.

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

Чтобы удалить последний элемент, вы также можете сделать это следующим образом:

fruits.splice(-1, 1);

См. Удаление последнего элемента из массива, чтобы увидеть больше комментариев по этому поводу.

Чинокао
источник
4

push()добавляет новый элемент в конец массива.
pop()удаляет элемент из конца массива.

unshift()добавляет новый элемент в начало массива.
shift()удаляет элемент из начала массива.

Чтобы удалить первый элемент из массива arr, используйте arr.shift()
Чтобы удалить последний элемент из массива arr, используйтеarr.pop()

Харунур Рашид
источник
2

Ты можешь использовать Array.prototype.reduce () .

Код:

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);

Йосвел Кинтеро Аргуэльес
источник
Круто, чтобы увидеть, уменьшить, чтобы удалить первый и последний элемент!
Мохан Рам
1

Чтобы удалить элемент из массива, просто сделайте следующее

let array_splited = [].split('/');
array_splited.pop()
array_splited.join('/')
Ричи
источник
1

Это можно сделать с помощью lodash _.tail и_.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>

Пенни Лю
источник
0
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
0

Скажем, у вас есть массив с именем list. Сращивания () функция может быть использована как для добавления и удаления элемента в этом массиве в конкретном индексе т.е. , который может быть в начале или в конце или в любом индексе. Напротив, есть еще одна функция с именем shift () и pop (), которая может удалять только первый и последний элемент в массиве.

Это функция Shift, которая способна удалить только первый элемент массива.

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 ];

Функция Pop удаляет элемент из массива по его последнему индексу

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

Теперь идет функция сращивания, с помощью которой вы можете удалить элемент по любому индексу.

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 

Функция среза принимает два параметра ( индекс для начала , количество оставшихся шагов );

Лабиб Хуссейн
источник
-1

Вы использовали метод Fruits.shift () для удаления первого элемента. Метод Fruits.pop (), используемый для последнего элемента, удаляет один за другим, если вы использовали нажатие кнопки. Fruits.slice (начальная позиция, удалить элемент) Вы также использовали метод slice для удаления элемента в середине начала.

Манодж Чаухан
источник
1
прочтите это и правильно отформатируйте свой ответ meta.stackexchange.com/questions/22186/…
isuruAb
-1

Для того, чтобы удалить первый и последний элемент массива с помощью встроенного метода ИЭ массива shift()и получить первый элемент массива , как «банан» в то время как получить последний элемент массива , как «Манго». поэтому оставшийся элемент массива будетpop()fruits.shift()fruits.pop()["Orange", "Apple"]

Чисом окое
источник
2
ответ, который вы дали, уже существует в этом вопросе: здесь и здесь . Если вы чувствуете, что им нужно больше объяснений, оставьте комментарий под ответом, который вас не устраивает.
Skandix
1
Форматирование кода поможет ( meta.stackexchange.com/questions/22186/… )! Кроме того, этот ответ кажется идентичным другим (например, stackoverflow.com/a/43327999/608312 ).
Джейк Ли
Отметил @JakeSteam
chisom okoye