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

97
Views
Update an array of objects using another array

i need to update the array of objects based on another array in ES6. Example

let a = [ 
  { id : 23, active :false, status:"" },
  { id : 33, active :false, status:"" },
  { id : 167, active :false, status:"" },
  { id : 18, active :false, status:"" },
  { id : 200, active :false, status:"" },
]

my second array which contain the objects

let marked = [167,33,23];

expected results as below

let a = [ 
  { id : 23, active :true, status:"updated"},
  { id : 33, active :true, status:"updated" },
  { id : 167, active :true, status:"updated" },
  { id : 18, active :false, status:"" },
  { id : 200, active :false, status:"" },
]

please let me know how to get as expected result. do we have any other methods in lodash for this.?

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

0

You don't need lodash, you could do this:

let a = [{
        id: 23,
        active: false
    },
    {
        id: 33,
        active: false
    },
    {
        id: 167,
        active: false
    },
    {
        id: 18,
        active: false
    },
    {
        id: 2,
        active: false
    },
]

let marked = [167, 33, 23];

let result = a.map(x => ({
    ...x,
    active: marked.includes(x.id)
}))
console.log(result)

You can make this faster if you go over the marked array and store its elements in an object. Then during the map checking if element x.id is inside the object will be faster (vs checking inside array). But in practice in most of the cases you should not notice the difference.

about 4 years ago · Juan Pablo Isaza Report

0

This is really just an extension of @Giorgi Moniava's answer since the question has been updated. I think you should mark his answer as the accepted one. Basically all you need to do is check if the value for active is true or false. If it's true, set the status to updated otherwise, set the status to an empty string.

let a = [ 
  { id : 23, active :false, status:"" },
  { id : 33, active :false, status:"" },
  { id : 167, active :false, status:"" },
  { id : 18, active :false, status:"" },
  { id : 200, active :false, status:"" },
]

let marked = [167,33,23];

let result = a.map(obj => {
    const isActive = marked.includes(obj.id);
    const status = isActive ? 'updated' : '';
    return {
      ...obj,
      active: isActive,
      status: status
    }
})
console.log(result)
about 4 years ago · Juan Pablo Isaza Report

0

Try with this, use map function with includes function. Hope so this answer gives your actual result. if not then comment to me I'll give you another answer.

const found = a.map(function(mapData){
    (marked.includes(mapData.id)) ? mapData.active = true : '';
    return mapData;
})
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!