如何计算嵌套数组中的项数?

9
我在我的Angular应用程序中有以下数组:

enter image description here

每个元素都包含一个供应商和一个或多个产品。
如何获取返回的所有产品的数量?
我可以通过执行以下操作获取产品本身:
array.map(x=>x.products)

我可以通过以下方式获得每个元素的产品数量:
array.map(x=>x.products.length)

但是我该如何对它们求和呢?

它可以嵌套多深? - wentjun
无论是什么,都要创建一个变量,并在每次迭代中以及迭代内部使其增加。并不是很难。 - Adesh Kumar
1个回答

21

你可以使用reduce来处理这个。

const totalProducts = arr.reduce((count, current) => count + current.products.length, 0);
< p > reduce 的概念是将一个数组 "缩减" 成单个实体。该实体可以是对象、另一个数组、数字等。

末尾的 0 初始化了 reduce 实体。由于您要进行求和,因此将其设置为 0,然后再加上它即可。


2
请参见此处的详细信息:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce - forrert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接