Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

177
Views
Splice deleting first items from array of objects instead of index

I'm trying to exclude items from an array of objects based on an array with the indexes I have to remove, but instead it's removing the first items from the array of objects.

My code:

let historicPrecipitation = [{"indicator":"Historic Precipitation","month":"1","year":"2014","value":"228.5"},{"indicator":"Historic Precipitation","month":"2","year":"2014","value":"144.7"},{"indicator":"Historic Precipitation","month":"3","year":"2014","value":"120.3"},{"indicator":"Historic Precipitation","month":"4","year":"2014","value":"146.9"},{"indicator":"Historic Precipitation","month":"5","year":"2014","value":"146.4"},{"indicator":"Historic Precipitation","month":"6","year":"2014","value":"128.1"},{"indicator":"Historic Precipitation","month":"7","year":"2014","value":"139.2"},{"indicator":"Historic Precipitation","month":"8","year":"2014","value":"150.0"},{"indicator":"Historic Precipitation","month":"9","year":"2014","value":"199.7"},{"indicator":"Historic Precipitation","month":"10","year":"2014","value":"268.4"},{"indicator":"Historic Precipitation","month":"11","year":"2014","value":"98.5"},{"indicator":"Historic Precipitation","month":"12","year":"2014","value":"139.9"}];

let monthsWithoutRegistration = [4, 5];

for (let i = 0; i < monthsWithoutRegistration.length; i++) {
    for (let j = 0; j < historicPrecipitation.length; j++) {
        if (parseInt(historicPrecipitation[j]['month']) === parseInt(monthsWithoutRegistration[i])) {
            historicPrecipitation.splice(historicPrecipitation[j], 1);
        }
    }
}

console.log(historicPrecipitation);

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

You need use j instead of historicPrecipitation[j] in splice because you should pass index not object:

let historicPrecipitation = [{
  "indicator": "Historic Precipitation",
  "month": "1",
  "year": "2014",
  "value": "228.5"
}, {
  "indicator": "Historic Precipitation",
  "month": "2",
  "year": "2014",
  "value": "144.7"
}, {
  "indicator": "Historic Precipitation",
  "month": "3",
  "year": "2014",
  "value": "120.3"
}, {
  "indicator": "Historic Precipitation",
  "month": "4",
  "year": "2014",
  "value": "146.9"
}, {
  "indicator": "Historic Precipitation",
  "month": "5",
  "year": "2014",
  "value": "146.4"
}, {
  "indicator": "Historic Precipitation",
  "month": "6",
  "year": "2014",
  "value": "128.1"
}, {
  "indicator": "Historic Precipitation",
  "month": "7",
  "year": "2014",
  "value": "139.2"
}, {
  "indicator": "Historic Precipitation",
  "month": "8",
  "year": "2014",
  "value": "150.0"
}, {
  "indicator": "Historic Precipitation",
  "month": "9",
  "year": "2014",
  "value": "199.7"
}, {
  "indicator": "Historic Precipitation",
  "month": "10",
  "year": "2014",
  "value": "268.4"
}, {
  "indicator": "Historic Precipitation",
  "month": "11",
  "year": "2014",
  "value": "98.5"
}, {
  "indicator": "Historic Precipitation",
  "month": "12",
  "year": "2014",
  "value": "139.9"
}];

let monthsWithoutRegistration = [4, 5];

for (let i = 0; i < monthsWithoutRegistration.length; i++) {
  for (let j = 0; j < historicPrecipitation.length; j++) {
    if (parseInt(historicPrecipitation[j]['month']) === parseInt(monthsWithoutRegistration[i])) {
      historicPrecipitation.splice(j, 1);
    }
  }
}

console.log(historicPrecipitation);

about 4 years ago · Juan Pablo Isaza Report

0

The splice syntax is wrong,

replace with this

  historicPrecipitation.splice(j, 1);
about 4 years ago · Juan Pablo Isaza Report

0

You can make use of filter instead of the nested for loops:

let filteredHistoricPrecipitation = historicPrecipitation.filter(x => 
    !monthsWithoutRegistration.includes(parseInt(x['month']))
);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!