-3

It should be returning 9-12,1-4,5-8,9-11 but instead it's returning 9-12,1-4,5-8,9-11,,,,

var arr = [{
    Sanju: '9-12'
  }, {
    Sanju: '1-4'
  }, {
    Sanju: '5-8'
  }, {
    Sanju: '9-11'
  },
  {
    IRONMAN: '9-12'
  }, {
    VIVEGAM: '1-4'
  }, {
    VIVEGAM: '5-8'
  }, {
    VIVEGAM: '9-11'
  }
];

var b = Array.from(arr, x => x.Sanju);
document.write(b);
document.write(Array.isArray(b));
George
  • 6,630
  • 2
  • 29
  • 36
Stone
  • 43
  • 10

2 Answers2

4

Since not all values in arr contains Sanju, some of the values will give you undefined when you return x.Sanju You can use filter to remove those like

var arr = [{Sanju: '9-12'},{Sanju: '1-4'}, {Sanju: '5-8'},{Sanju: '9-11'},
  {IRONMAN: '9-12'},{VIVEGAM: '1-4'}, {VIVEGAM: '5-8'},{VIVEGAM: '9-11'}
];
 
 var b= Array.from(arr, x => x.Sanju).filter(Boolean);
    document.write(b);
    document.write(Array.isArray(b));

Check Removing undefined values from Array for more details on how .filter(Boolean) works

Shubham Khatri
  • 270,417
  • 55
  • 406
  • 400
4

It should be returning 9-12,1-4,5-8,9-11 but instead it's returning 9-12,1-4,5-8,9-11,,,,

Coz there is no Sanju property on some of the objects. You should first filter you array and then do the rest

var arr = [{
    Sanju: '9-12'
  }, {
    Sanju: '1-4'
  }, {
    Sanju: '5-8'
  }, {
    Sanju: '9-11'
  },
  {
    IRONMAN: '9-12'
  }, {
    VIVEGAM: '1-4'
  }, {
    VIVEGAM: '5-8'
  }, {
    VIVEGAM: '9-11'
  }
];

var o = arr.filter(i=> i.Sanju);

var b = Array.from(o, x => x.Sanju);
document.write(b);
 
document.write(Array.isArray(b));
Muhammad Usman
  • 10,039
  • 22
  • 39