Converting chain conditional operators to old check method

Viewed 13

I'm having to convert my inline conditional operators in my node js application as they're not supported by PM2. I'm a little stuck on why one of my lines isn't converting correctly.

The current conditional chaining operators returns the correct result

// Working solution
purchases.forEach((purchase) => {
  const matchingItems = sales.filter(obj => obj.elements[0]?.specialId === purchase.elements[0]?.specialId);
  if (matchingItems.length > 0){
   console.log('purchase has been SOLD.')
    purchase.sold = true
  }
})

but my converted code is not returning 'purchase has been sold'

        purchases.forEach((purchase) => {
            // const matchingItems = sales.filter(obj => obj.elements[0] && obj.elements[0].specialId === purchase.elements[0] && purchase.elements[0].specialId);

            const matchingItems = sales.filter((obj) => {
                return obj.elements[0] && obj.elements[0].specialId === purchase.elements[0] && purchase.elements[0].specialId
            })

            if (matchingItems.length > 0){
                console.log('purchase has been SOLD.')
                purchase.sold = true
            }
        })

https://jsfiddle.net/nia232/yugcw326/6/

I'm sure it's something obvious im doing wrong but any help appreciated!

0 Answers
Related