9

I understand that finding the length of a JS object has been answered extensively here

With one of the suggested solutions being Object.keys(myObj).length

However, I'm struggling to find out how can I find the length of all properties contained on an array of objects.

ie:

const users = [
  {
    firstName: "Bruce",
    lastName: "Wayne",
    id: "1",
  },

  {
    firstName: "Peter",
    lastName: "Parker",
    id: "2"
  },

  {
    firstName: "Tony",
    lastName: "Stark",
    id: "3"
  }
];

Object.keys(users).length //3

Given the example above, How can I output a length of 9 retrieving all the properties on the array of objects?

Could this be done using a reduce method? Thanks in advance.

3
  • 5
    users.reduce((acc, o) => acc + Object.keys(o).length, 0) Commented Dec 15, 2018 at 5:24
  • 1
    Object.keys(users[1]).length Commented Dec 15, 2018 at 5:27
  • 1
    @DeepikaRao that only gives the length for [1] which is 3 Commented Dec 15, 2018 at 5:32

1 Answer 1

10

Yes, reduce is the appropriate method - on each iteration, add the number of keys of the current object to the accumulator to sum up the keys of every item:

  const users = [
  {
    firstName: "Bruce",
    lastName: "Wayne",
    id: "1",
  },

  {
    firstName: "Peter",
    lastName: "Parker",
    id: "2"
  },

  {
    firstName: "Tony",
    lastName: "Stark",
    id: "3"
  }
];

const totalProps = users.reduce((a, obj) => a + Object.keys(obj).length, 0);
console.log(totalProps);

Sign up to request clarification or add additional context in comments.

1 Comment

Thank you very much, I was lost on how to go about this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.