-4

I have this array

[[11,12,13,14],[21,22,23,24],[31,32,33,34],[41],[43],[51]]

,

expected output like this: 11-14,21-24,31-34,41,43,51

Barmar
  • 741,623
  • 53
  • 500
  • 612
Newbee
  • 7
  • 5

3 Answers3

0
[[11,12,13,14],[21,22,23,24],[31,32,33,34],[41],[43],[51]].map((arr) => {
  if(arr.length > 1){
     return `${arr[0]}-${arr[arr.length-1]}`
  }
  return `${arr[0]}`;
})

['11-14', '21-24', '31-34', '41', '43', '51']

Shawn
  • 146
  • 7
0

We can do it via Array.map()

const data = [[11,12,13,14],[21,22,23,24],[31,32,33,34],[41],[43],[51]]

let result = data.map(d => {
   if(d.length < 2){
     return d[0]
   }
   return d.at(0) +' -' + d.at(-1)
})
console.log(result)
flyingfox
  • 13,414
  • 3
  • 24
  • 39
0

You can use Array.prototype.reduce():

const data = [[11,12,13,14],[21,22,23,24],[31,32,33,34],[41],[43],[51]]
const result = data.reduce(
  (a, arr) => [...a, arr.length >= 2 ? `${arr[0]}-${arr[arr.length - 1]}` : arr[0]], 
  []
)

console.log(result)
Yosvel Quintero
  • 18,669
  • 5
  • 37
  • 46