0

I have an object with key value pairs inside an array:

error : [ { firstName : true },
          { lastName : false },
          { email : true }
        ]

I want to fetch the key from objects.

I tried this, but this will show undefined in output

let result = error.map((row, index) => { 
          console.log("key" + row[0] + " index " + index);
}

enter image description here

Jack Bashford
  • 43,180
  • 11
  • 50
  • 79

2 Answers2

1

Use Object.keys:

 

const obj = {
error : [ { firstName : true },
      { lastName : false },
      { email : true }
    ]
}

const keys = obj.error.flatMap(Object.keys);

console.log(keys);

You may need this for an older browser:

 

const obj = {
error : [ { firstName : true },
      { lastName : false },
      { email : true }
    ]
}

const keys = obj.error.map(Object.keys).reduce((acc, curr) => acc.concat(curr));

console.log(keys);
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79
0

Use map() with Object.keys():

var data = {
  error: [{
      firstName: true
    },
    {
      lastName: false
    },
    {
      email: true
    }
  ]
};
var keys = data.error.map(e => Object.keys(e)[0]);;
console.log(keys);

Or use forEach() with spread syntax:

var data = {
  error: [{
      firstName: true,
      address: false
    },
    {
      lastName: false
    },
    {
      email: true
    }
  ]
};
var keys = [];
data.error.forEach(e => keys = [...keys, ...Object.keys(e)]);;
console.log(keys);
Ankit Agarwal
  • 30,378
  • 5
  • 37
  • 62