What is the proper way to remove an array value using the 'splice'

Having trouble removing values from an array using splice. I tried using both delete and splice methods but neither seem to work as expected.

var arr = [];
 arr[2] = 22;
 arr[5] = 3;
 arr[99] = 3343;
 for(var i in arr){
    if(i != 2){
    arr.splice(i,1);
    }
   //delete arr[i];
 }
 console.log(arr);// [2: 22, 98: 3343]
 //wanted [2:22]

I am attempting to remove all elements from the array except the one at index 2, however it only deletes one element. Any suggestions on how to achieve this?

Answer №1

There's no need for a for loop when using the splice method, you can simply use: arr.splice(0,arr.length)

If you just want to delete all elements, you can do so by doing arr=[].

Another approach is to loop through and use the pop function:

while(arr.length > 0) {
    arr.pop();
}

Answer №2

If you find yourself needing to sequentially delete items from the middle of an array, it's best to iterate in reverse to avoid complications with shifting indexes.

var arr = new Array(10).fill("").map((e,i) => e = "item:" +i),
      i = 7;
console.log(JSON.stringify(arr));
while (i>2) console.log(JSON.stringify(arr.splice(i--,1))); // remove item at index i and decrease i by one
console.log(JSON.stringify(arr));
  

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Exploring the functionality of the $.each jQuery iterator. Can someone clarify the distinctions between these two methods?

Having vertices as an array of google.maps.LatLng objects means that they should return latlng points. The first code snippet works perfectly fine, however, I encounter issues when using the second one. // Iterate over the vertices. for (var index =0; ind ...

What is the best way to retrieve JSON data using JavaScript within a loop?

I'm struggling to retrieve data from a JSON object. Here's the JSON structure I'm working with: var data = [ {"mes":{ "January":{ "Inversion":"1000","Fans":"1020"} ...

Verify whether the initial value is distinct from the subsequent one using AJAX

I'm currently working on a project where I need to compare the first value received from an AJAX call to the subsequent values. However, I seem to be stuck and unable to figure out how to achieve this. Every 5 seconds, I am checking the follower count ...

Creating a nearly sorted list with 2**20 elements in Python: A Step-by-Step Guide

Given N=2**20, the list A is constructed in such a way that each element A[i+1] is equal to A[i] plus a random value between 1 and 5. Following this, N//20 elements are moved to a random position within the list. This is the code I have written so far: im ...

Adding an image to a Select Option label in React: A simple guide

As a newcomer to React, I am experimenting with creating a drop-down menu that includes images in the labels. My approach involves using a function to gather values from a map and construct an id: label pair to display as options in the drop-down. Both the ...

How can I use jQuery to prevent a click function from running when input fields are left empty

I have step cards with input fields on each card. A "Next" button is provided for each card to change the view. However, I need to prevent the "Next" button from functioning if any input fields on the form are left empty. Below is the code snippet: va ...

Loop through each item in an array

Currently, I am leveraging vue.js and lodash to iterate through a list of events in order to extract the promoted events. My goal is to then store each event in a new object or array that holds a refined list of promoted events. However, instead of conso ...

Error: Document expected to be found has already been removed

Upon attempting to log into the app, I encountered an error message in the client console (chrome dev tools) that reads as follows: Uncaught Error: Expected to find a document already present for removed mongo.js?69942a86515ec397dfd8cbb0a151a0eefdd9560d:2 ...

leafletjs: render Points of Interest (POIs) using canvas technology

I am looking for a way to efficiently draw multiple geo points using Leaflet and HTML5 canvas. My data source is geoJSON, but according to the documentation of Leaflet, drawing geo positions as canvas is currently not supported. var anotherGeojsonLayer = ...

Encountering the error message "Uncaught TypeError: $.ajax is undefined"

Recently, I encountered an issue with my form that utilizes ajax to send user information to a php file. The form is embedded within a bootstrap modal and was functioning perfectly until I attempted to add an extra field for enhanced functionality. However ...

Using an onClick event along with jQuery to change the CSS class style of another div

After searching extensively without success, I decided to register and ask my first question here. Hopefully, someone can provide a solution: My goal is to create a set of five buttons (divs) with onClick events that will show five different divs. I' ...

Creating an array of objects is causing problems related to encapsulation

Could someone please clarify for me the reasoning behind... $(document).ready(function() { var codes = ['0291285', '0409338', '0521704', '0521990', '0523652', '0523657', '0523660', ...

Tips for navigating through an array incrementally in a Controller using input provided by the user in the View

Greetings, I am currently working on a small website project using WAMPserver. The site is structured following an MVC design pattern. In one part of the process, I generate an array of strings in the controller. My goal is to display each element of this ...

An error was triggered due to cross-origin restrictions, preventing React from directly accessing the specific error object during development in React

I am attempting to copy data from props and set it in state within the constructor. this.state = { displayModal: false, showProgressBar: true, copiedData: JSON.parse(JSON.stringify(this.props.data)) } However, I keep encountering a cross-origin err ...

Tips for overlaying text onto a canvas background image

I'm curious about how to overlay text on top of an image that is within a canvas element. The image is a crucial part of my game (Breakout), so it must remain in the canvas. I've tried adding text, but it always ends up behind the image, which is ...

Combating React SetState Race Conditions with the Power of Promise.all

componentDidMount() { Promise.all([OfferCreationActions.resetOffer()]).then( () => { OfferCreationActions.updateOfferCreation('viewOnly', true); OfferCreationActions.updateOfferCreation('loadingOffer', true); ...

A dedicated folder for hosting the static assets generated by Nuxt.js

I have a quick question I'm looking to create a dedicated directory for the static files generated by Nuxt Js Currently, Nuxt Js compiles all files into a single directory called 'dist' As I am utilizing Django Server as my backend, I nee ...

Using a pre-defined function as a parameter will not function properly with the event listener

As a beginner, I recently attempted the following: ul.addEventListener("click", function(e) { console.log("Hi"); }); Surprisingly, this code worked just fine. I learned that the function used here is anonymous. However, when I tried ...

Step-by-step guide on populating a state using an array

I am having trouble populating a list within a state using the set method, as the state remains empty App.js // Initiates the secrets word game const startGame = () => { // pick word and pick category const { word, category } = pickWordAndCat ...

Rails does not accept parameters sent as [object Object] in a GET request

I am having trouble with a GET request to retrieve a single "project". The params I send to Rails are being rejected because they show as [object Object], not the expected params. This method has worked for me in the past, so I'm confused. I should be ...