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

152
Views
create array of objects from an array of string ids with 1st object having first value with second, second with third and so on

I have an array of strings e.g. const array1 = ["124542", "112244", "112245", "112246"];

I want to create below results:

const array2 = [
  {
    "comparableId": "124542",
    "comparatorId": "112244"
  },
  {
    "comparableId": "112244",
    "comparatorId": "112245"
  },
  {
    "comparableId": "112245",
    "comparatorId": "112246"
  }
]

In this array2, 1st index value from array1 is with 2nd value, 2nd value with 3rd and 3rd with 4th and so on. This array1 is dynamic and can have just 1 value e.g. const array1 = ["124542"]; and can have any number of values.

I have tried using Ecma Script reduce and map methods.

const array2 = array1.map((value, index) => {
    return {
       comparableId: value,
       comparatorId: array1[index + 1] || '',
    };
});

Is there some other good way to do it ?

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

0

Using a for loop is probably the easiest here.

const array1 = ["124542", "112244", "112245", "112246"];


const transform = (array) => {
  const result = [];

  for (let i = 0; i === 0 || i < array.length - 1; ++i) {
    result.push({
      comparableId: array[i],
      comparatorId: array[i + 1] ?? "",
    })
  }
  
  return result;
};

console.log(transform(array1));
console.log(transform(["124542"]));

about 4 years ago · Juan Pablo Isaza Report

0

const array1 = ["124542", "112244", "112245", "112246"];

let array2 = [];

array1.map((item, index) =>{
  
  array2.push({comparableId: item, comparatorId: array1[index+1] || ""})
})
console.log(array2)

about 4 years ago · Juan Pablo Isaza Report

0

Fully declarative, no mutations solution.

const
  array1 = ["124542", "112244", "112245", "112246"],
  array2 = [...Array(Math.ceil(array1.length / 2))].map((_, i) =>
    ({comparableId: array1[i * 2], comparatorId: array1[i * 2 + 1] ?? ""})
  );

console.log(array2);

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!