Удалить последний элемент из массива

У меня есть следующий массив.

var arr = [1,0,2];

Я хотел бы удалить последний элемент, т.е. 2.

Я использовал arr.slice(-1);, но он не удаляет значение.

Ответ 2

Array.prototype.pop() по соглашению JavaScript.

let fruit = ['apple', 'orange', 'banana', 'tomato'];
let popped = fruit.pop();

console.log(popped); // "tomato"
console.log(fruit); // ["apple", "orange", "banana"]

Ответ 3

Вы можете сделать это с помощью метода .slice():

arr.slice(0, -1);    // returns [1,0]

Вот демо:

var arr = [1, 0, 2];
var newArr = arr.slice(0, -1);    // returns [1,0]

console.log(newArr);
$('#div1').text('[' + arr + ']');
$('#div2').text('[' + newArr + ']');
<script src="http://code.jquery.com/jquery.min.js"></script>
<b>Original Array    : </b>
<div id="div1"></div>
<br/>
<b>After slice(0, -1): </b>
<div id="div2"></div>

Ответ 4

узнать на примере:

let array_1 = [1,2,3,4];
let array_2 = [1,2,3,4];
let array_3 = [1,2,3,4];

array_1.splice(-1,1)  // output --> [4]      array_1 = [1,2,3]
array_2.slice(0,-1);  // output --> [1,2,3]  array_2 = [1,2,3,4]
array_3.pop();        // output --> 4        array_3 = [1,2,3]

Ответ 5

Вам нужно будет это сделать, поскольку slice не изменяет исходный массив.

arr = arr.slice(-1);

Если вы хотите изменить исходный массив, вы можете использовать splice:

arr.splice(-1, 1);

или pop:

arr.pop();

Ответ 6

Для этого есть функция, объяснение здесь:

arr.pop();

Ответ 7

Я считаю, что .pop() - самое "правильное" решение, однако иногда оно может не сработать, так как вам нужно использовать массив без последнего элемента прямо там...

В таком случае вы можете использовать следующее, он вернет [1,2,3]

var arr = [1,2,3,4];
console.log(arr.splice(0,arr.length-1));

Ответ 8

Вы можете просто использовать arr.pop()

Это удаляет последнюю запись массива.

var arr = [1,0,2]; 
var popped = arr.pop();//Now arr = [1,0] & popped = 2

Ответ 9

Вы можете сделать это двумя способами, используя splice():

  1. arr.splice(-1,1)
  2. arr.splice(arr.length-1,1)

splice(position_to_start_deleting, how_many_data_to_delete) принимает два параметра.

position_to_start_deleting: Индекс, начинающийся с нуля, с которого начинается удаление. how_many_data_to_delete: из указанного индекса, сколько последовательных данных должны быть удалены.

Вы также можете удалить последний элемент, используя pop() как pop() удаляет последний элемент из некоторого массива.
Используйте arr.pop()

Ответ 10

arr.slice(-1) вернет копию последнего элемента массива, но исходный массив не модифицируется.

Чтобы удалить последние элементы n из массива, используйте arr.splice(-n) (обратите внимание на "p" в "сращивании" ). Возвращаемым значением будет новый массив, содержащий удаленные элементы.

Еще проще, для n == 1 используйте val = arr.pop()

Ответ 11

Этот метод более полезен для удаления и сохранения последнего элемента массив.

var sampleArray = [1,2,3,4];// Declaring the array
var lastElement = sampleArray.pop();//this command will remove the last element of `sampleArray` and stores in a variable called `lastElement` so that you can use it if required.

Теперь результаты:

console.log(sampleArray); //This will give you [1,2,3]
console.log(lastElement); //this will give you 4

Ответ 12

var arr = [1,0,2];
arr.length--; 

//удаляет последний элемент // нужно проверить, если arr.length > 0

Ответ 13

//Объявление массива

var names = ["harry", "aahan", "arav", "you"];

//эта команда удалит последний элемент из names

names.pop();

Ответ 14

splice (index, howmany) - Это решение кажется хорошим. Но этот howmany будет работать только для индекса положительного массива. Чтобы удалить последние два элемента или три элемента, используйте сам индекс.

Например, сращивание (-2) для удаления двух последних элементов. splice (-3) для удаления трех последних элементов.

Ответ 15

Стоит отметить, что slice будет возвращать новый массив, тогда как .pop() и .splice() будут мутировать существующий массив.

Если вам нравится обрабатывать коллекции данных с прикованным командным стилем, вы действительно захотите придерживаться slice для чего-то вроде этого.

Например:

myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var newArrayOfThings = myArray
  .filter(x => x > 5)              // only bigly things
  .slice(-1)                       // get rid of the last item
  .map(x => `The number is: ${x}`);// map to a set of strings

Ответ 16

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

_.dropRight([1, 2, 3])
// => [1, 2]

_.dropRight([1, 2, 3], 2);
// => [1]

Ответ 17

var a = [1,2,3,4,5,6]; 
console.log(a.reverse().slice(1).reverse());
//Array(5) [ 1, 2, 3, 4, 5 ]

Ответ 18

скажите, что у вас есть var arr = [1,0,2]

arr.splice(-1,1) вернется к вам array [1,0];, а arr.slice(-1,1) вернется к вам array [2];

Ответ 19

Решение ECMA5 2019:

const new_arr = arr.reduce((d, i, idx, l) => idx < l.length - 1 ? [...d, i] : d, [])

Неразрушающий, универсальный, однострочный, требуется только копия & вставьте в конце вашего массива.

Ответ 20

Это хороший способ удалить последний элемент:

if (arr != null && arr != undefined && arr.length > 0) {
      arr.splice(arr.length - 1, 1);
}

Детали сращивания следующим образом:

сращивание (startIndex, количество сращиваний)

Ответ 21

var stack = [1,2,3,4,5,6];

stack.reverse().shift();

stack.push(0);

Выход будет: Массив [0,1,2,3,4,5]. Это позволит вам сохранить такое же количество элементов массива, сколько вы нажимаете новое значение.