Home > Software design >  How to handle the case if item is undefined?
How to handle the case if item is undefined?

Time:03-18

In an array of objects I am trying to create a new property based on another array of numbers.
The problem is that the number of array has one less element, therefore it gets undefined in the last index of array of objects.
How to handle that case, if the new created property is undefined? See the code example below

const sortArr = [3, 2, 1];

const items= [
  {
    a: 1,
  },
  {
    a: 2,
  },
  {
    a: 3,
  },
  {
    a: 4,
  },
];

const res =
items.map((item, idx) => ({
    ...item,
      sortItem:sortArr[idx]
  }));
  
  console.log(res)

CodePudding user response:

if it's the last in the array then show nothing/empty string

To use an empty string as fallback if sortArr[inx] does not exist, use the Nullish coalescing operator (??) operator:

sortItem: sortArr[idx] ?? ''

const sortArr = [3, 2, 1];
const items= [{a: 1, }, {a: 2, }, {a: 3, }, {a: 4, }, ];

const res = items.map((item, idx) => (
    {
        ...item,
        sortItem: sortArr[idx] ?? ''
    }
));

console.log(res)

CodePudding user response:

You can set sortItem based on whether idx is less than sortArr.length

sortItem: idx < sortArr.length ? sortArr[idx] : "no element at that position"

  • Related