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.
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.
-
5
users.reduce((acc, o) => acc + Object.keys(o).length, 0)
– Andrew Li Commented Dec 15, 2018 at 5:24 - 1 Object.keys(users[1]).length – Deepika Rao Commented Dec 15, 2018 at 5:27
-
1
@DeepikaRao that only gives the length for
[1]
which is3
– Null isTrue Commented Dec 15, 2018 at 5:32
1 Answer
Reset to default 10Yes, 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);