Remove last item from array
Use splice(startPosition, deleteCount)
array.splice(-1)
var array = ['abc','def','ghi','123'];
var removed = array.splice(-1); //last item
console.log( 'array:', array );
console.log( 'removed:', removed );
Delete last item from array with useState
There are 3 possible solutions to your problem.
Solution 1:
Slice the array from the first element to the -1 (1 before the last) element.
setTodos(todos.slice(0, -1)));
Or
setTodos((previousArr) => (previousArr.slice(0, -1)));
Solution 2:
Create a copy array and splice it with the value of -1. Then set the array from the first element to the -1 element.
const copyArr = [...todos];
copyArr.splice(-1);
setTodos(copyArr);
Solution 3:
Create a copy list with the ...
, pop the copy and set the new value of the array to the copy.
const copyArr = [...todos];
copyArr.pop();
setTodos(copyArr);
How to remove last item in Javascript array?
To eliminate the last element of the array, use Array.pop()
and to join array elements into a string, separated with spaces, you must pass a space to .join()
.
The commas are showing up because you are logging an array and the commas are auto inserted to separate array items for you, the reader - they are not actual parts of the array. But, if you want the words as a string, just passing a space to the .join()
method gives you the output you want.
var inputVal = document.getElementById("txtWords");
inputVal.addEventListener("blur", function(){
tags = inputVal.value.split(' '); // create tags array
tags.pop(); // remove last word
tags = tags.join(" "); // array to string separated by spaces
console.log(tags); });
Type some words in the box and then hit TAB: <input type="text" id="txtWords">
Delete last object from the array of objects.
You could just splice out the last element in the array:
obj.Results.splice(-1);
var obj = { Results: [{ id: 1, name: "Rick", Value: "34343" }, { id:2, name: 'david', Value: "2332", }, { id: 3, name: 'Rio', Value: "2333" }]};
obj.Results.splice(-1);console.log(obj);
Removing an item from an array of items only removes the last item
Because you're using index
as key
. The key will help react know which one should be updated. So you need to provide a unique value for each component.
FYI: https://reactjs.org/docs/lists-and-keys.html
The quick fix for your example:
let id = 0 // Introduce id variable
export default function App() {
Increase Id each time you add new item:
const addNewForm = () => {
id++;
setForms([
...forms,
{
id,
valuesOfForm: { firstname: "", lastname: "" }
}
]);
};
Change the key to id:
<SomeForm
value={form.valuesOfForm}
key={form.id}
index={index}
Everything will work after this
Remove last element from array if it matches a particular condition
If it's the last element you're after then you don't need the loop at all, just check if the array is empty or not and access the last element directly:
function dedupeLast(a, target) {
if(a.length && a[a.length - 1] === target){
a.pop();
}
}
It reads: if a
is not empty (a.length != 0
) and the last element a[a.length - 1] === target
then, remove the last element using pop
.
How to not delete last element in array (Dart language)
Simply check the length of the list before removing the element. If it reaches 1
item, it stops deleting.
Column(
children: [
TextButton(child: const Text ('Remove Me'),
onPressed: () {
if(_listTexts.length > 1) setState((){
_listTexts.removeLast();
});
}),
])
How to remove last element from every row of a matrix in javascript
The first argument to .map
is the item you're iterating over, not the index.
Since each item here is an array, you can either .pop
the array (which will mutate the existing array), or .slice
the array (which will not mutate the existing array).
var matrixWithExtraInfo = [ [1,2,3,4,"dog"], [5,6,7,8,"dog"], [9,10,11,12,"dog"], [13,14,15,16,"dog"], [17,18,19,20,"dog"]];
var conciseMatrix = [ [1,2,3,4], [5,6,7,8], [9,10,11,12], [13,14,15,16], [17,18,19,20]]
var conciseMatrix = matrixWithExtraInfo.map((arr) => { arr.pop(); return arr;});console.log(matrixWithExtraInfo);console.log(conciseMatrix);
Delete 2nd to last item array
You can use splice
method instead. This is an example:
let arr = [1,2,3];arr.splice(-2,1);console.log(arr);
Related Topics
Remove All Special Characters with Regexp
Canvas.Todataurl() Securityerror
How to Copy Static Files to Build Directory with Webpack
Error Parsing Xhtml: the Content of Elements Must Consist of Well-Formed Character Data or Markup
How to Convert an Integer to Binary in JavaScript
Removing an Anonymous Event Listener
Start Script Missing Error When Running Npm Start
Best Way to Call an Asynchronous Function Within Map
Moment Js Date Time Comparison
Named Capturing Groups in JavaScript Regex
How to Load Local Script Files as Fallback in Cases Where Cdn Are Blocked/Unavailable
Set Additional Data to Highcharts Series
Getting Unexpected Token Export
How to Expose Iframe's Dom Using Jquery
What's the Best Way to Break from Nested Loops in JavaScript