最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to count items in a nested array? - Stack Overflow

programmeradmin5浏览0评论

I have the following array in my Angular application:

Each element contains a supplier and one or more products.

How can I get a count of all the products that are returned?

I can get the products themselves by doing this:

array.map(x=>x.products)

And I can get a count of the products for each element by doing this:

array.map(x=>x.products.length)

But how do I then sum that?

I have the following array in my Angular application:

Each element contains a supplier and one or more products.

How can I get a count of all the products that are returned?

I can get the products themselves by doing this:

array.map(x=>x.products)

And I can get a count of the products for each element by doing this:

array.map(x=>x.products.length)

But how do I then sum that?

Share Improve this question asked May 13, 2019 at 16:30 Robbie MillsRobbie Mills 2,9458 gold badges57 silver badges92 bronze badges 2
  • how deeply nested can it be? – wentjun Commented May 13, 2019 at 16:31
  • Whatever it is make a var and make it increase on each iteration as well as inside iteration. Not that much tough. – Adesh Kumar Commented May 13, 2019 at 16:32
Add a comment  | 

1 Answer 1

Reset to default 22

You can use reduce to handle this.

const totalProducts = arr.reduce((count, current) => count + current.products.length, 0);

The concept of reduce is to take an array and "reduce" it down to a single entity. That entity can be an object, another array, number...

The 0 at the end initializes the reduce entity. Since you are going for a sum, set it to 0 and then add to it.

发布评论

评论列表(0)

  1. 暂无评论