Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

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.

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

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 ?

>Solution :

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"]));
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading