Laatste item uit array verwijderen

Ik heb de volgende array.

var arr = [1,0,2];

Ik wil het laatste element verwijderen, d.w.z. 2.

Ik heb arr.slice(-1);gebruikt, maar de waarde wordt niet verwijderd.


Antwoord 1, autoriteit 100%

Gebruik splice(startPosition, deleteCount)

array.splice(-1)

Antwoord 2, autoriteit 92%

Array.prototype.pop()volgens JavaScript-conventie.

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

Antwoord 3, autoriteit 51%

U kunt dit doen met .slice()methode zoals:

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

Hier is een demo:

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="https://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>

Antwoord 4, autoriteit 19%

leer door voorbeeld:

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

Antwoord 5, autoriteit 8%

Je zou dit moeten doen omdat slicede originele array niet verandert.

arr = arr.slice(-1);

Als u de originele array wilt wijzigen, kunt u splicegebruiken:

arr.splice(-1, 1);

of pop:

arr.pop();

Antwoord 6, autoriteit 5%

Ik zou .pop()als de meest ‘juiste’ oplossing beschouwen, maar soms werkt het misschien niet omdat je array moet gebruiken zonder het laatste element daar…

In zo’n geval wil je misschien het volgende gebruiken, het zal [1,2,3]

teruggeven

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

Antwoord 7, autoriteit 3%

Daar is een functie voor, uitleg hier:

arr.pop();

Antwoord 8, autoriteit 3%

Gebruik gewoon het volgende voor uw gebruik:

var arr = [1,2,3,4];
arr.pop() //returns 4 as the value
arr // value 4 is removed from the **arr** array variable

Gewoon een opmerking. Wanneer u de functie pop()uitvoert, ook al retourneert de regel het popped item, dan wordt de oorspronkelijke array uitgevoerd en wordt het popped element verwijderd.


Antwoord 9, autoriteit 2%

Je zou gewoon arr.pop()

. kunnen gebruiken

Dit verwijdert de laatste invoer van de array.

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

Antwoord 10

Je kunt het op twee manieren doen met splice():

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

splice(position_to_start_deleting, how_many_data_to_delete)heeft twee parameters.

position_to_start_deleting: De op nul gebaseerde index van waaruit u kunt beginnen met verwijderen.
how_many_data_to_delete: Van de aangegeven index, hoeveel opeenvolgende gegevens moeten worden verwijderd.

Je kunt het laatste element ook verwijderen met pop()omdat pop()het laatste element uit een array verwijdert.
Gebruik arr.pop()


Antwoord 11

arr.slice(-1)retourneert een kopievan het laatste element van de array, maar laat de originele array ongewijzigd.

Om de laatste nelementen uit een array te verwijderen, gebruik je arr.splice(-n)(let op de “p” in “splice”). De retourwaarde zal een nieuwe array zijn die de verwijderde elementen bevat.

Nog eenvoudiger, gebruik voor n == 1val = arr.pop()


Antwoord 12

Deze methode is handiger om het laatste element van een te verwijderen en op te slaan
reeks.

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.

De resultaten zijn nu:

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

Antwoord 13

Een andere benadering is om te filteren op basis van index:

arr.filter((element, index) => index < arr.length - 1);

Opmerking: filter()maakt een nieuwe array aan, verandert de bestaande niet.


Antwoord 14

splice(index,howmany) – Deze oplossing klinkt goed. Maar Dit hoeveelwerkt alleen voor de positieve array-index. Gebruik de index zelf om de laatste twee items of drie items te verwijderen.

Bijvoorbeeld splice(-2) om de laatste twee items te verwijderen. splice(-3) voor het verwijderen van de laatste drie items.


Antwoord 15

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

// verwijdert het laatste element
// moet controleren of arr.length > 0


Antwoord 16

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

Antwoord 17

Met Lodash kun je dropRightgebruiken, als je niet wilt weten welke elementen zijn verwijderd:

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

Antwoord 18

Het is vermeldenswaard dat slicebeide een nieuwearray retourneert, terwijl .pop()en .splice()muteert de bestaandearray.

Als je het leuk vindt om gegevensverzamelingen te verwerken met een geketende commandostijl, dan wil je voor zoiets als dit echt slicegebruiken.

Bijvoorbeeld:

myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var newArrayOfThings = myArray
  .filter(x => x > 5)              // only bigly things
  .slice(0, -1)                       // get rid of the last item ! slice(-1) will give first element
  .map(x => `The number is: ${x}`);// map to a set of strings

Antwoord 19

2019 ECMA5-oplossing:

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

Niet-destructief, generiek, one-liner en vereist alleen een kopie & plak aan het einde van je array.


Antwoord 20

stel dat je var arr = [1,0,2]

. hebt

arr.splice(-1,1)keert terug naar u array [1,0];terwijl arr.slice(-1,1)keert terug naar je array [2];


Antwoord 21

Dit is een goede manier om het laatste item te verwijderen:

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

Detail van de splitsing als volgt:

splice(startIndex, aantal splice)


Antwoord 22

var stack = [1,2,3,4,5,6];
stack.reverse().shift();
stack.push(0);

Uitvoer zal zijn: Array[0,1,2,3,4,5].
Hierdoor kunt u hetzelfde aantal array-elementen behouden als u een nieuwe waarde invoert.


Antwoord 23

Als u een item van het einde van de array in javascript wilt verwijderen, kunt u eenvoudig het volgende gebruiken:

arr.splice(-n, n);

Antwoord 24

De spread-operator gebruiken:

const a = [1,2,3]
const [, ...rest] = a.reverse();
const withoutLast = rest.reverse();
console.log(withoutLast)

Antwoord 25

Gewoon arr.splice(-1)is voldoende.


Antwoord 26

// Setup
var myArray = [["John", 23], ["cat", 2]];
// Only change code below this line
var removedFromMyArray;
removedFromMyArray = myArray.pop()

Antwoord 27

Ik heb het beste antwoord!

var array = [1, 2, 3, 4]
array.length = array.length - 1
console.log(array)
> [1, 2, 3]

Eerlijk gezegd is JS op dit moment een meme.

Other episodes